6 changed files with 294 additions and 156 deletions
@ -1,11 +1,86 @@
@@ -1,11 +1,86 @@
|
||||
class Blackjack { |
||||
deck; |
||||
bank; |
||||
|
||||
bet; |
||||
roundActive = false; |
||||
|
||||
constructor() { |
||||
this.deck = new CardDeck(); |
||||
this.bank = new LunaBank(); |
||||
constructor(vue) { |
||||
this.vue = vue; |
||||
this.deck = CardDeck.createAndShuffle(vue); |
||||
this.bank = LunaBank.createEmpty(); |
||||
// this.bank = new LunaBank(vue);
|
||||
|
||||
this.dealer = Hand.createDealerHand(); |
||||
this.player = Hand.create(); |
||||
} |
||||
|
||||
startRound() { |
||||
if (this.bet > this.bank.money) { |
||||
alertify.notify('Not enough money for bet.'); |
||||
this.endRound(); |
||||
} |
||||
|
||||
this.bank.money -= this.bet; |
||||
|
||||
this.roundActive = true; |
||||
|
||||
this.player.pickCard(this.deck.takeOneCard()); |
||||
this.dealer.pickCard(this.deck.takeOneCard()); |
||||
this.player.pickCard(this.deck.takeOneCard()); |
||||
this.dealer.pickCard(this.deck.takeOneCard()); |
||||
|
||||
if (this.dealer.hasBlackjack()) { |
||||
this.dealer.win(); |
||||
} |
||||
|
||||
if (this.player.points === 21) { |
||||
this.player.pass(); |
||||
} |
||||
|
||||
console.log('Round has started'); |
||||
return true; |
||||
} |
||||
|
||||
pass() { |
||||
if (this.dealer.points === this.player.points) { |
||||
this.roundActive = false; |
||||
alertify.notify('Draw!'); |
||||
this.draw(); |
||||
} else if (this.dealer.points > 21) { |
||||
this.roundActive = false; |
||||
alertify.notify('Dealer is plus, you win'); |
||||
this.win(); |
||||
} else if (this.dealer.points > this.player.points) { |
||||
this.roundActive = false; |
||||
alertify.notify('Dealer Wins'); |
||||
} else if (this.dealer.points < 17) { |
||||
this.roundActive = false; |
||||
this.dealer.pickCard(this.deck.takeOneCard()); |
||||
this.pass(); |
||||
} else if (this.player.points > this.dealer.points && this.player.points < 22) { |
||||
this.roundActive = false; |
||||
alertify.notify('You win ' + this.bet * 1.5 + '!'); |
||||
this.win(); |
||||
} |
||||
} |
||||
|
||||
draw() { |
||||
this.money = (parseInt(this.money) + parseInt(this.bet)); |
||||
} |
||||
|
||||
win() { |
||||
this.money += (parseInt(this.bet) * 2); |
||||
} |
||||
|
||||
endRound() { |
||||
this.roundActive = false; |
||||
this.lastCard = null; |
||||
this.status = null; |
||||
this.dealersHand = []; |
||||
this.dealer.points = 0; |
||||
this.usersHand = []; |
||||
this.player.points = 0; |
||||
|
||||
this.deck = CardDeck.createAndShuffle(); |
||||
} |
||||
} |
Loading…
Reference in new issue