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