[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. |