From 11bd10fbe41971f0f0d7b1eda9c16c8c8f2f401f Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Mon, 19 Feb 2018 23:15:05 +0100 Subject: Fix simultaneous win counting --- capturego_server.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/capturego_server.js b/capturego_server.js index b2b9585..ee851c4 100755 --- a/capturego_server.js +++ b/capturego_server.js @@ -47,9 +47,10 @@ function playerLeavesGame(player,game){ else game.players=newp; } -// Returns winning player (0 or 1) or -1 if none yet +// Returns winning player (0 or 1), or -1 if none yet, or 2 if both function gameBoardFinished(game){ const B=game.board,S=game.size; + const win=[false,false]; for(let i=0;i{ return; } g.board[idx]=[1,-1][g.onturn]; - const win=gameBoardFinished(g) - if(win!=-1){ - for(const p of g.players){ - p.socket.emit("game_win",safeGame(g),safePlayer(g.players[win])); - } - } else { + const win=gameBoardFinished(g); + if(win==2)win=g.onturn; + if(win==-1){ g.onturn=1-g.onturn; g.players[g.onturn].socket.emit("game_turn",safeGame(g)); g.players[1-g.onturn].socket.emit("game_other_turn",safeGame(g)); + } else { + for(const p of g.players){ + p.socket.emit("game_win",safeGame(g),safePlayer(g.players[win])); + } } }); }); -- cgit v1.2.3