Merge pull request #5 from jhalitaksoy/fix/getWonPlayerId

Fix/get won player
This commit is contained in:
Halit Aksoy 2022-07-09 13:26:48 +03:00 committed by GitHub
commit 2c5b9981c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 5 deletions

View File

@ -198,17 +198,18 @@ export class MancalaGame {
return false;
}
public getWonPlayerId(): string | null {
public getWonPlayerId(): string | undefined {
const player1StoneCount = this.board.player1Bank.stoneCount;
const player2StoneCount = this.board.player2Bank.stoneCount;
if (this.checkGameIsEnded()) {
if (
this.board.player1Bank.stoneCount > this.board.player2Bank.stoneCount
) {
if (player1StoneCount === player2StoneCount) {
return undefined;
} else if (player1StoneCount > player2StoneCount) {
return this.player1Id;
} else {
return this.player2Id;
}
}
return null;
}
public static createFromMancalaGame(mancalaGame: MancalaGame): MancalaGame {

View File

@ -153,4 +153,24 @@ describe('Game Test', () => {
expect(game.history[2]).toStrictEqual(historyItem3);
expect(game.history[3]).toStrictEqual(historyItem4);
});
test('test getWonPlayerId', () => {
const game = createGame();
const player1Id = '0';
const player2Id = '1';
game.board.clear();
game.board.pits[game.board.player1BankIndex()].stoneCount = 1;
game.board.pits[game.board.player2BankIndex()].stoneCount = 0;
expect(game.getWonPlayerId()).toBe(player1Id);
game.board.pits[game.board.player1BankIndex()].stoneCount = 0;
game.board.pits[game.board.player2BankIndex()].stoneCount = 1;
expect(game.getWonPlayerId()).toBe(player2Id);
game.board.pits[game.board.player1BankIndex()].stoneCount = 0;
game.board.pits[game.board.player2BankIndex()].stoneCount = 0;
expect(game.getWonPlayerId()).toBe(undefined);
});
});