aboutsummaryrefslogtreecommitdiff
path: root/gameserver/gameserver.html
diff options
context:
space:
mode:
Diffstat (limited to 'gameserver/gameserver.html')
-rw-r--r--gameserver/gameserver.html42
1 files changed, 32 insertions, 10 deletions
diff --git a/gameserver/gameserver.html b/gameserver/gameserver.html
index d8528ab..7fc27fc 100644
--- a/gameserver/gameserver.html
+++ b/gameserver/gameserver.html
@@ -74,19 +74,33 @@ function preinit(){
MOVES.push(arg[1]);
addmovelistrow(arg[1]);
nextmove();
- } else alert(arg[1]);
- } else if(cmd=="your_turn"){
- canAlreadyTurn=true;
- if(hasInited){
+ } else {
+ alert(arg[1]);
enableClicking(true,isFirstMove&&imPlayer==1);
- isFirstMove=false;
}
+ } else if(cmd=="other_turn"){
if(arg){
MOVES.push(arg);
addmovelistrow(arg);
nextmove();
}
- }
+ } else if(cmd=="your_turn"){
+ canAlreadyTurn=true;
+ if(hasInited){
+ enableClicking(true,isFirstMove&&imPlayer==1);
+ isFirstMove=false;
+ }
+ } else if(cmd=="game_stop"){
+ alert("Game has been stopped:\n"+arg);
+ enableClicking(false);
+ } else if(cmd=="game_win"){
+ bgcell(neuidx).classList.add("win");
+ if(arg==imPlayer){
+ alert("You have won the game!");
+ } else {
+ alert("You have lost the game! Better luck next time.");
+ }
+ } else alert("Unrecognised message "+msg);
});
ws.addEventListener("open",function(){
ws.send("nick");
@@ -262,8 +276,8 @@ function addmovelistrow(mv,i/*optional*/){
if(moveidx==target)return;
while(moveidx<target)nextmove(true);
while(moveidx>target)prevmove(true);
- setselectedmovelistline(i+1);
- };})(i+1));
+ setselectedmovelistline(target);
+ };})(i-1));
movelisttbody.appendChild(tr);
}
@@ -339,7 +353,7 @@ function nextmove(notimeout){
fgcells[neuidx]=null;
neuidx=newidx;
- if(moveidx==MOVES.length-1)bgcell(neuidx).classList.add("win");
+ //if(moveidx==MOVES.length-1)bgcell(neuidx).classList.add("win");
}
newidx=indexafterslide(MOVES[moveidx][1],MOVES[moveidx][2]);
@@ -371,7 +385,9 @@ function prevmove(notimeout){
if(moveidx==0||!canclick)return false;
moveidx--;
- if(MOVES[moveidx][0]!=-1&&moveidx==MOVES.length-1)winGlowIdxToRemove=neuidx;
+ //if(MOVES[moveidx][0]!=-1&&moveidx==MOVES.length-1)winGlowIdxToRemove=neuidx;
+ for(var i=0;i<S*S;i++)if(bgcell(i).classList.contains("win"))break;
+ if(i<S*S)winGlowIdxToRemove=i;
newidx=indexafterslide(MOVES[moveidx][1],MOVES[moveidx][2],true);
board[MOVES[moveidx][1]]=board[newidx];
@@ -559,6 +575,12 @@ div#movelist tr.selected{
input[type=button].selected{
background-color:#aaf;
}
+
+div#nickname{
+ margin-top:10px;
+ font-family:Sans-serif;
+ font-style:italic;
+}
</style>
</head>
<body>