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; 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.checkGameIsEnded()) {
if ( if (player1StoneCount === player2StoneCount) {
this.board.player1Bank.stoneCount > this.board.player2Bank.stoneCount return undefined;
) { } else if (player1StoneCount > player2StoneCount) {
return this.player1Id; return this.player1Id;
} else { } else {
return this.player2Id; return this.player2Id;
} }
} }
return null;
} }
public static createFromMancalaGame(mancalaGame: MancalaGame): MancalaGame { public static createFromMancalaGame(mancalaGame: MancalaGame): MancalaGame {

View File

@ -153,4 +153,24 @@ describe('Game Test', () => {
expect(game.history[2]).toStrictEqual(historyItem3); expect(game.history[2]).toStrictEqual(historyItem3);
expect(game.history[3]).toStrictEqual(historyItem4); 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);
});
}); });