Skip to content

Commit

Permalink
roundData push vs map for call after check bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ptwu committed Apr 16, 2020
1 parent 6c8f0f3 commit 5f9c13e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
18 changes: 12 additions & 6 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,16 +138,22 @@ io.on('connection', (socket) => {
game.moveOntoNextPlayer();
} else if (data.move == 'call') {
let currBet = game.getPlayerBetInStage(game.findPlayer(socket.id));
const player = game.findPlayer(socket.id);
const topBet = game.getCurrentTopBet();
console.log('current bet: ' + currBet);
console.log('top bet: ' + topBet);
if (currBet === 0) {
game.roundData.bets[game.roundData.bets.length - 1].push({
player: game.findPlayer(socket.id).getUsername(),
bet: topBet
});
game.findPlayer(socket.id).money = game.findPlayer(socket.id).money - topBet;
if (game.findPlayer(socket.id).money == 0) game.findPlayer(socket.id).allIn = true;
if (game.roundData.bets[game.roundData.bets.length - 1].some(a => a.player == player.getUsername())) {
game.roundData.bets[game.roundData.bets.length - 1] = game.roundData.bets[game.roundData.bets.length - 1].map(a => a.player == game.findPlayer(socket.id).username ? { player: game.findPlayer(socket.id).getUsername(), bet: topBet } : a);
game.findPlayer(socket.id).money = game.findPlayer(socket.id).money - (topBet - currBet);
} else {
game.roundData.bets[game.roundData.bets.length - 1].push({
player: game.findPlayer(socket.id).getUsername(),
bet: topBet
});
game.findPlayer(socket.id).money = game.findPlayer(socket.id).money - topBet;
if (game.findPlayer(socket.id).money == 0) game.findPlayer(socket.id).allIn = true;
}
} else {
game.roundData.bets[game.roundData.bets.length - 1] = game.roundData.bets[game.roundData.bets.length - 1].map(a => a.player == game.findPlayer(socket.id).username ? { player: game.findPlayer(socket.id).getUsername(), bet: topBet } : a);
game.findPlayer(socket.id).money = game.findPlayer(socket.id).money - (topBet - currBet);
Expand Down
17 changes: 13 additions & 4 deletions src/classes/game.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,10 @@ const Game = function (name, host) {
let totalBetInStage = 0;

for (let j = 0; j < stageData.length; j++) {
if (stageData[j].player == player.getUsername() && stageData[j].bet != 'Buy-in' && stageData[j].bet != 'Fold')
if (stageData[j].player == player.getUsername() && stageData[j].bet != 'Buy-in' && stageData[j].bet != 'Fold') {
totalBetInStage += stageData[j].bet;
break;
}
}
return totalBetInStage;
}
Expand Down Expand Up @@ -641,7 +643,6 @@ const Game = function (name, host) {
}

this.isStageComplete = () => {
const maxBet = this.getCurrentTopBet();
let allPlayersPresent = false;
let numUnfolded = 0;
for (let i = 0; i < this.players.length; i++) {
Expand All @@ -653,8 +654,16 @@ const Game = function (name, host) {
} else {
allPlayersPresent = currRound.filter(a => a.bet != 'Fold').length >= numUnfolded;
}

return allPlayersPresent && currRound.reduce((acc, curr) => ((curr.bet != 'Buy-in' && curr.bet != 'Fold') ? (curr.bet == maxBet) || this.findPlayer(this.players.find(a => a.getUsername() == curr.player)).allIn : true) && acc, true);
console.log('all players present ' + allPlayersPresent);
let allPlayersCall = true;
for (player of this.players) {
if (player.getStatus() != 'Fold' && this.getPlayerBetInStage(player) != this.getCurrentTopBet() && !player.allIn) {
allPlayersCall = false;
break;
}
}
console.log('all players call ' + allPlayersCall);
return allPlayersPresent && allPlayersCall;
}

this.setCardsPerPlayer = (numCards) => {
Expand Down

0 comments on commit 5f9c13e

Please sign in to comment.