patch endGame scoring bug
This commit is contained in:
parent
12f9847a0e
commit
49873aa706
2 changed files with 16 additions and 9 deletions
|
@ -382,12 +382,9 @@ const Game = ({ gameData = {}, gameRecord = [] } = {}) => {
|
|||
);
|
||||
this.playerState.bScore = blackTerritory + this.playerState.bCaptures;
|
||||
this.playerState.wScore = whiteTerritory + this.playerState.wCaptures;
|
||||
this.score =
|
||||
const score =
|
||||
this.playerState.bScore - (this.playerState.wScore + this.komi);
|
||||
this.winner = this.score > 0 ? 1 : -1;
|
||||
// submit end game board state and data for study
|
||||
// (study module should run client side and only )
|
||||
return { ...this, territory: getTerritory(this) };
|
||||
return { ...this, score, winner: score > 0 ? 1 : -1 };
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1019,7 +1019,7 @@ describe("Game end logic", () => {
|
|||
{ player: "black", pos: { x: 11, y: 19 } },
|
||||
];
|
||||
const honinboGame = Game({
|
||||
gameData: { komi: 4.5 },
|
||||
gameData: { komi: 1.5 },
|
||||
gameRecord: honinboGameRecord,
|
||||
})
|
||||
.submitPass("white")
|
||||
|
@ -1064,10 +1064,20 @@ describe("Game end logic", () => {
|
|||
});
|
||||
|
||||
it("end game counts territory properly", (done) => {
|
||||
const game = honinboGame.endGame();
|
||||
// console.log(game.territory);
|
||||
game.winner.should.eql(1);
|
||||
const game = honinboGame
|
||||
.toggleTerritory("6-12")
|
||||
.toggleTerritory("6-16")
|
||||
.toggleTerritory("7-6")
|
||||
.toggleTerritory("7-6")
|
||||
.toggleTerritory("11-5")
|
||||
.toggleTerritory("11-5")
|
||||
.toggleTerritory("11-9")
|
||||
.toggleTerritory("12-11")
|
||||
.toggleTerritory("12-11")
|
||||
.toggleTerritory("16-16")
|
||||
.endGame();
|
||||
game.score.should.eql(1.5);
|
||||
game.winner.should.eql(1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue