diff --git a/game-logic.js b/game-logic.js index 9679bbd32dd77a8a41bf3f109c1b8c0fe819254c..351a2e26bcbac368a842d8023a8f9c365c509a10 100644 --- a/game-logic.js +++ b/game-logic.js @@ -33,14 +33,20 @@ function drawCard(){ } function handValue(cards){ - let sum = 0; - let aces = 0; + let sum = cards.reduce( + (accumulator, item) => accumulator + item + ); + let aces = cards.filter( + (item) => item === 11 + ).length; + /* for (let i = 0; i < cards.length; i++){ sum = sum + cards[i]; if (cards[i] == 11){ aces++; } } + */ while (sum > 21 && aces > 0){ sum = sum - 10; aces--; @@ -102,21 +108,61 @@ function blackjack(){ } } + if (curPlayerScore > 21){ + console.log(`The player has busted`); + return false; + } + console.log(gameState.cards[0]); // show the hidden card of the dealer + console.log(`The hidden card of the dealer was ${gameState.hiddenCard}`); + + gameState.cards[1].push(gameState.hiddenCard); + gameState.hiddenCard = null; + + curDealerScore = handValue(gameState.cards[1]); + + console.log(`The dealer current score is ${curDealerScore}`); + // REPEAT THIS ----- // If dealer has less than 17 // dealer draws a card + // --- UNTIL THE DEALER has 17 or more + while(curDealerScore < 17){ + let curCard = drawCard(); + console.log(`The dealer got a new card with value ${curCard}`); + gameState.cards[1].push(curCard); + curDealerScore = handValue(gameState.cards[1]); + console.log(`The dealer got a score of ${curDealerScore}`); + } // if new score > 21 dealer loses -> // need to pay the player 2 times the bet // -> end the game - // --- UNTIL THE DEALER has 17 or more + if (curDealerScore > 21){ + console.log(`Dealer has busted`); + console.log(`The player wins`); + gameState.playerWallet += gameState.currentBet*2; + return true; + } // we need to compare player's score with dealer's score // if player's score > dealer's score: player wins // -> pay 2 times the bet // end the game + if (curDealerScore > curPlayerScore){ + console.log(`The player lost`); + return false; + } else if (curDealerScore === curPlayerScore){ + console.log(`That's a tie`); + gameState.playerWallet += gameState.currentBet; + return true + } else { + console.log(`The player wins`); + gameState.playerWallet += gameState.currentBet*2; + return true; + } + } blackjack(); \ No newline at end of file