[Toss-devel-svn] SF.net SVN: toss:[1273] trunk/Toss
Status: Beta
Brought to you by:
lukaszkaiser
|
From: <luk...@us...> - 2010-12-30 22:58:07
|
Revision: 1273
http://toss.svn.sourceforge.net/toss/?rev=1273&view=rev
Author: lukaszkaiser
Date: 2010-12-30 22:58:00 +0000 (Thu, 30 Dec 2010)
Log Message:
-----------
Non-standard checkers (will be corrected).
Modified Paths:
--------------
trunk/Toss/WebClient/DefaultStyle.js
trunk/Toss/WebClient/Login.js
trunk/Toss/WebClient/MakeDB.py
trunk/Toss/WebClient/Style.css
trunk/Toss/WebClient/index.html
Added Paths:
-----------
trunk/Toss/examples/Checkers.toss
trunk/Toss/examples/Checkers.tossstyle
Modified: trunk/Toss/WebClient/DefaultStyle.js
===================================================================
--- trunk/Toss/WebClient/DefaultStyle.js 2010-12-22 09:50:51 UTC (rev 1272)
+++ trunk/Toss/WebClient/DefaultStyle.js 2010-12-30 22:58:00 UTC (rev 1273)
@@ -227,14 +227,16 @@
var f = svg_from_string (pos[0], pos[1], 20, 20,
'<g class="chessB" ' + is + hs + '>' + DEFrook + '</g>');
document.getElementById("svg").appendChild(f);
- } else if (rel_name == "wQ") { // Chess Figure: white queen
- var f = svg_from_string (pos[0], pos[1], 20, 20,
- '<g class="chessW" ' + is + hs + '>' + DEFqueen + '</g>');
+ } else if (rel_name == "wQ" || rel_name == "Wq") {
+ // Chess Figure: white queen or Checkers: white queen
+ var f = svg_from_string (pos[0], pos[1], 20, 20,
+ '<g class="chessW" ' + is + hs + '>' + DEFqueen + '</g>');
+ document.getElementById("svg").appendChild(f);
+ } else if (rel_name == "bQ" || rel_name == "Bq") {
+ // Chess Figure: black queen or Checkers: black queen
+ var f = svg_from_string (pos[0], pos[1], 20, 20,
+ '<g class="chessB" ' + is + hs + '>' + DEFqueen + '</g>');
document.getElementById("svg").appendChild(f);
- } else if (rel_name == "bQ") { // Chess Figure: black queen
- var f = svg_from_string (pos[0], pos[1], 20, 20,
- '<g class="chessB" ' + is + hs + '>' + DEFqueen + '</g>');
- document.getElementById("svg").appendChild(f);
} else if (rel_name == "wK") { // Chess Figure: white king
var f = svg_from_string (pos[0], pos[1], 20, 20,
'<g class="chessW" ' + is + hs + '>' + DEFking + '</g>');
Modified: trunk/Toss/WebClient/Login.js
===================================================================
--- trunk/Toss/WebClient/Login.js 2010-12-22 09:50:51 UTC (rev 1272)
+++ trunk/Toss/WebClient/Login.js 2010-12-30 22:58:00 UTC (rev 1273)
@@ -23,10 +23,11 @@
document.getElementById("welcome").style.display = "none";
document.getElementById("plays").style.display = "block";
list_plays_string ("Breakthrough", udata[2]);
- list_plays_string ("Chess", udata[3]);
- list_plays_string ("Entanglement", udata[4]);
- list_plays_string ("Gomoku", udata[5]);
- list_plays_string ("Tic-Tac-Toe", udata[6]);
+ list_plays_string ("Checkers", udata[3]);
+ list_plays_string ("Chess", udata[4]);
+ list_plays_string ("Entanglement", udata[5]);
+ list_plays_string ("Gomoku", udata[6]);
+ list_plays_string ("Tic-Tac-Toe", udata[7]);
get_opponents ();
}
Modified: trunk/Toss/WebClient/MakeDB.py
===================================================================
--- trunk/Toss/WebClient/MakeDB.py 2010-12-22 09:50:51 UTC (rev 1272)
+++ trunk/Toss/WebClient/MakeDB.py 2010-12-30 22:58:00 UTC (rev 1273)
@@ -8,7 +8,8 @@
SERVER_FILE = "/var/www/WebClient/TossServer"
GAMES_PATH = "../examples"
-GAMES = ["Breakthrough", "Chess", "Entanglement", "Gomoku", "Tic-Tac-Toe"]
+GAMES = ["Breakthrough", "Checkers", "Chess", "Entanglement",
+ "Gomoku", "Tic-Tac-Toe"]
TUID = "toss_id_05174_"
Modified: trunk/Toss/WebClient/Style.css
===================================================================
--- trunk/Toss/WebClient/Style.css 2010-12-22 09:50:51 UTC (rev 1272)
+++ trunk/Toss/WebClient/Style.css 2010-12-30 22:58:00 UTC (rev 1273)
@@ -598,13 +598,13 @@
stroke-width: 3px;
}
-.Game-Chess .model-elem-0 {
+.Game-Chess .model-elem-0, .Game-Checkers .model-elem-0 {
fill: #d18b47;
stroke: #260314;
stroke-width: 3px;
}
-.Game-Chess .model-elem-1 {
+.Game-Chess .model-elem-1, .Game-Checkers .model-elem-1 {
fill: #ffe4aa; /* #ffce9e; */
stroke: #260314;
stroke-width: 3px;
Modified: trunk/Toss/WebClient/index.html
===================================================================
--- trunk/Toss/WebClient/index.html 2010-12-22 09:50:51 UTC (rev 1272)
+++ trunk/Toss/WebClient/index.html 2010-12-30 22:58:00 UTC (rev 1273)
@@ -102,6 +102,12 @@
</p>
<ul class="plays-list" id="plays-list-Breakthrough"></ul>
<p class="game-par">
+ <button class="bt" onclick="new_play ('Checkers')">New Game</button>
+ <a class="game_list"
+ href="http://en.wikipedia.org/wiki/Checkers">Checkers</a>
+ </p>
+ <ul class="plays-list" id="plays-list-Checkers"></ul>
+ <p class="game-par">
<button class="bt" onclick="new_play ('Chess')">New Game</button>
<a class="game_list" href="http://en.wikipedia.org/wiki/Chess">Chess</a>
</p>
Added: trunk/Toss/examples/Checkers.toss
===================================================================
--- trunk/Toss/examples/Checkers.toss (rev 0)
+++ trunk/Toss/examples/Checkers.toss 2010-12-30 22:58:00 UTC (rev 1273)
@@ -0,0 +1,211 @@
+PLAYERS 1, 2
+DATA depth: 2, adv_ratio: 2
+REL IsFirst(x) = not ex z C(z, x)
+REL IsEight(x) = not ex z C(x, z)
+REL w(x) = W(x) or Wq(x)
+REL b(x) = B(x) or Bq(x)
+REL DiagWa (x, y) = ex z (C(x, z) and R(y, z))
+REL DiagBa (x, y) = ex z (C(z, x) and R(z, y))
+REL DiagWb (x, y) = ex z (C(x, z) and R(z, y))
+REL DiagBb (x, y) = ex z (C(z, x) and R(y, z))
+REL DiagW2 (x, y, z) =
+ (DiagWa (x, y) and DiagWa (y, z)) or (DiagWb (x, y) and DiagWb (y, z))
+REL DiagB2 (x, y, z) =
+ (DiagBa (x, y) and DiagBa (y, z)) or (DiagBb (x, y) and DiagBb (y, z))
+REL Diag2 (x, y, z) = DiagW2 (x, y, z) or DiagB2 (x, y, z)
+REL BeatsW (x, y) = ex z (b(z) and not b(y) and not w(y) and Diag2 (x, z, y))
+REL BeatsB (x, y) = ex z (w(z) and not b(y) and not w(y) and Diag2 (x, z, y))
+REL Da (x, y) = DiagWa (x, y) or DiagBa (x, y)
+REL Db (x, y) = DiagWb (x, y) or DiagBb (x, y)
+REL FreeDa (x, y) = tc 7 x, y (Da (x, y) and not w(y) and not b(y))
+REL FreeDb (x, y) = tc 7 x, y (Db (x, y) and not w(y) and not b(y))
+REL FreeDWa (x, y) = tc 6 x, y (DiagWa (x, y) and not w(y) and not b(y))
+REL FreeDWb (x, y) = tc 6 x, y (DiagWb (x, y) and not w(y) and not b(y))
+REL FreeDBa (x, y) = tc 6 x, y (DiagBa (x, y) and not w(y) and not b(y))
+REL FreeDBb (x, y) = tc 6 x, y (DiagBb (x, y) and not w(y) and not b(y))
+REL TrDWa (x, y) = ex z (FreeDWa (x, z) and (z = y or DiagWa (z, y)))
+REL TrDWb (x, y) = ex z (FreeDWb (x, z) and (z = y or DiagWb (z, y)))
+REL TrDBa (x, y) = ex z (FreeDBa (x, z) and (z = y or DiagBa (z, y)))
+REL TrDBb (x, y) = ex z (FreeDBb (x, z) and (z = y or DiagBb (z, y)))
+REL TDiagW2 (x, y, z) =
+ (TrDWa (x, y) and DiagWa (y, z)) or (TrDWb (x, y) and DiagWb (y, z))
+REL TDiagB2 (x, y, z) =
+ (TrDBa (x, y) and DiagBa (y, z)) or (TrDBb (x, y) and DiagBb (y, z))
+REL TDiag2 (x, y, z) = TDiagW2 (x, y, z) or TDiagB2 (x, y, z)
+RULE WhiteMove:
+ [ a, b | W { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | W { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre (not IsEight(b)) and (DiagWa(a, b) or DiagWb(a, b))
+ and not ex x, y (W(x) and BeatsW (x, y))
+RULE BlackMove:
+ [ a, b | B { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | B { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre (not IsFirst(b)) and (DiagBa(a, b) or DiagBb(a, b))
+ and not ex x, y (B(x) and BeatsB (x, y))
+RULE WhitePromote:
+ [ a, b | W { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | Wq { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre (IsEight(b)) and (DiagWa(a, b) or DiagWb(a, b))
+ and not ex x, y (W(x) and BeatsW (x, y))
+RULE BlackPromote:
+ [ a, b | B { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | Bq { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre (IsFirst(b)) and (DiagBa(a, b) or DiagBb(a, b))
+ and not ex x, y (B(x) and BeatsB(x, y))
+RULE WhiteQMove:
+ [ a, b | Wq { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | Wq { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre FreeDa(a, b) or FreeDb(a, b)
+RULE BlackQMove:
+ [ a, b | Bq { a } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ ->
+ [ a, b | Bq { b } |
+ vx {a->0.,b->0.}; vy {a->0.,b->0.}; x {a->0.,b->10.}; y {a->0.,b->10.} ]
+ emb w, b pre FreeDa(a, b) or FreeDb(a, b)
+RULE WhiteBeat:
+ [ a, b, c | W { a }; b { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | W { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) and not IsEight(c)
+ post not ex x, y (_new_W(x) and BeatsW (x, y))
+RULE BlackBeat:
+ [ a, b, c | B { a }; w { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | B { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) and not IsFirst(c)
+ post not ex x, y (_new_B(x) and BeatsB (x, y))
+RULE WhiteBeatPromote:
+ [ a, b, c | W { a }; b { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | Wq { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) and IsEight(c)
+ post not ex x, y (_new_W(x) and BeatsW (x, y))
+RULE BlackBeatPromote:
+ [ a, b, c | B { a }; w { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | Bq { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) and IsFirst(c)
+ post not ex x, y (_new_B(x) and BeatsB (x, y))
+RULE WhiteBeatCont:
+ [ a, b, c | W { a }; b { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | W { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) post ex x, y (_new_W(x) and BeatsW (x, y))
+RULE BlackBeatCont:
+ [ a, b, c | B { a }; w { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | B { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre Diag2 (a, b, c) post ex x, y (_new_B(x) and BeatsB (x, y))
+RULE WhiteQBeat:
+ [ a, b, c | Wq { a }; b { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | Wq { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre TDiag2 (a, b, c)
+RULE BlackQBeat:
+ [ a, b, c | Bq { a }; w { b } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ ->
+ [ a, b, c | Bq { c } |
+ vx {a->0.,b->0.,c->0.}; vy {a->0.,b->0.,c->0.};
+ x {a->0.,b->10.,c->20.}; y {a->0.,b->10.,c->20.} ]
+ emb w, b pre TDiag2 (a, b, c)
+LOC 0 {
+ PLAYER 1
+ PAYOFF {
+ 1: :(ex x w(x)) - :(ex x b(x));
+ 2: :(ex x b(x)) - :(ex x w(x))
+ }
+ MOVES [WhiteMove -> 1]; [WhitePromote -> 1]; [WhiteQMove -> 1];
+ [WhiteBeat -> 1]; [WhiteBeatPromote -> 1]; [WhiteQBeat -> 1];
+ [WhiteBeatCont -> 2]
+}
+LOC 1 {
+ PLAYER 2
+ PAYOFF {
+ 1: :(ex x w(x)) - :(ex x b(x));
+ 2: :(ex x b(x)) - :(ex x w(x))
+ }
+ MOVES [BlackMove -> 0]; [BlackPromote -> 0]; [BlackQMove -> 0];
+ [BlackBeat -> 0]; [BlackBeatPromote -> 0]; [BlackQBeat -> 0];
+ [BlackBeatCont -> 3]
+}
+LOC 2 {
+ PLAYER 1
+ PAYOFF {
+ 1: :(ex x w(x)) - :(ex x b(x));
+ 2: :(ex x b(x)) - :(ex x w(x))
+ }
+ MOVES [WhiteBeat -> 1]; [WhiteBeatPromote -> 1]; [WhiteBeatCont -> 2]
+}
+LOC 3 {
+ PLAYER 2
+ PAYOFF {
+ 1: :(ex x w(x)) - :(ex x b(x));
+ 2: :(ex x b(x)) - :(ex x w(x))
+ }
+ MOVES [BlackBeat -> 0]; [BlackBeatPromote -> 0]; [BlackBeatCont -> 3]
+}
+MODEL [ | Wq:1 { }; Bq:1 { } |
+ ] "
+ ... ... ... ...
+ B.. B.. B.. B..
+ ... ... ... ...
+ B.. B.. B.. B..
+ ... ... ... ...
+ B.. B.. B.. B..
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ W.. W.. W.. W..
+ ... ... ... ...
+ W.. W.. W.. W..
+ ... ... ... ...
+ W.. W.. W.. W..
+"
Added: trunk/Toss/examples/Checkers.tossstyle
===================================================================
--- trunk/Toss/examples/Checkers.tossstyle (rev 0)
+++ trunk/Toss/examples/Checkers.tossstyle 2010-12-30 22:58:00 UTC (rev 1273)
@@ -0,0 +1,6 @@
+nocolor ;
+elOPACITY: 20 ;
+relOPACITY: 150 ;
+arrLENscale: 0.0 ;
+W: ~/greencircle.svg;
+B: ~/bluecircle.svg;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|