X-Git-Url: https://git.ucc.asn.au/?p=progcomp2013.git;a=blobdiff_plain;f=web%2Fqwebchess%2Fjs.js;h=7baea20bd8f86ce938ed984ba18ea58083cc2399;hp=e02328b5ce35e8a87bfd1677fafc40e430c7b504;hb=318bb473add1bf88ccc1c7edacb0feba0249e401;hpb=b75b6e305f5cecfbff9298d9565f37966c163786
diff --git a/web/qwebchess/js.js b/web/qwebchess/js.js
index e02328b..7baea20 100644
--- a/web/qwebchess/js.js
+++ b/web/qwebchess/js.js
@@ -5,24 +5,37 @@
pieceSelected = ""; // currently selected piece
piece = "";
colour = "W"; // colour of this player
+canClick = true;
// Unicode representations of chess pieces
pieceChar = {"W" : { "p" : "\u2659", "h" : "\u2658", "b" : "\u2657", "r" : "\u2656", "q" : "\u2655", "k" : "\u2654", "?" : "?"},
"B" : { "p" : "\u265F", "h" : "\u265E", "b" : "\u265D", "r" : "\u265C", "q" : "\u265B", "k" : "\u265A", "?" : "?"}};
+emptyHTML = "
"; - - if (end[end.length-1] % 2 == 0) - end.innerHTML.replace(/.*<\/big>/i, "?"); + alert("doMove("+start+","+end+")"); + s1 = document.getElementById(start); + s2 = document.getElementById(end); + s2.innerHTML = s1.innerHTML; + s1.innerHTML = emptyHTML; + + resetColour(start); + + if ((+end[end.length-1] + +end[end.length-2]) % 2 == 1) + { + s2.innerHTML = s2.innerHTML.replace(/
"; + square.innerHTML = emptyHTML; } } @@ -141,20 +164,28 @@ function ajaxUpdate(queryString) { for (var i = 0; i < lines.length; ++i) { tokens = lines[i].split(" ") + x = Number(tokens[0]); if (isNaN(tokens[0]) || isNaN(tokens[1])) continue; - pieceSelected = ""+tokens[1]+""+tokens[0]; - square = document.getElementById(pieceSelected); - html = square.innerHTML; - c = html.charAt(4); - if (tokens[2] == "->" && document.getElementById(""+tokens[4] + "" + tokens[3]).innerHTML.charAt(4) != colour) + var s1 = document.getElementById("" + tokens[1] + "" + tokens[0]); + var s2 = document.getElementById("" + tokens[4] + "" + tokens[3]); + if (tokens[2] == "->" && s1.innerHTML.charAt(4) != '0') { - doMove(""+tokens[1] + "" + tokens[0], ""+tokens[4] + "" + tokens[3]); + canClick = false; + if ((+tokens[0] + +tokens[1]) % 2 == 0) + s1.style.background = "#DFD"; + else + s1.style.background = "#8F8"; + + var doThisMove = function(start, end) {doMove(start, end); canClick = true;}(""+tokens[1]+""+tokens[0], ""+tokens[4]+""+tokens[3]); + setTimeout(function() {doThisMove(); canClick = true;}, 500); } else if (tokens.length == 4 && !isNaN(tokens[0]) && !isNaN(tokens[1]) && !isNaN(tokens[2]) && isNaN(tokens[3])) { + html = s1.innerHTML; + c = html.charAt(4); piece = tokens[3]; if (piece == "knight") //HACK piece = "h"; @@ -163,8 +194,7 @@ function ajaxUpdate(queryString) { if (tokens[2] == "1") html[html.length-1] = pieceChar[c][piece]; - square.innerHTML = html.replace(/