Atölye › Blackjack › 14/22. adım

Kim kazandı?

Ne yapıyoruz

finish eli bitiriyor: elleri karşılaştırıyor, bir mesaj yazıyor ve ödüyor. 21'i geçen patlar ve hemen kaybeder. Yoksa toplamı büyük olan kazanır; eşitse "push" (berabere) olur ve bahsin geri gelir. Kazanmak bahsin iki katını öder (bahsin geri + bir o kadar). Kartla 21'e ulaşırsan otomatik durursun; 21'i geçemezsin zaten.

```js
let message

  if (handValue(player) > 21) finish()
  else if (handValue(player) === 21) stand()

// Compare the hands and pay: a win returns the bet twice, blackjack two and a half times, a push gives it back.
function finish() {
  phase = 'done'
  const p = handValue(player)
  const d = handValue(dealer)
  let paid = 0
  if (p > 21) message = 'Bust!'
  else if (d > 21) [message, paid] = ['Dealer busts, you win', bet * 2]
  else if (p > d) [message, paid] = ['You win', bet * 2]
  else if (p < d) message = 'Dealer wins'
  else [message, paid] = ['Push', bet]
  bank += paid

  message = ''

  if (message) {
    ctx.fillStyle = '#fde047'
    ctx.font = 'bold 22px sans-serif'
    ctx.textAlign = 'center'
    ctx.fillText(message, canvas.width / 2, 212)
  }
```

Ne işe yarıyor

Sıra sende

  1. let phase satırının altına let message yaz; deal'da phase = 'player' satırının üstüne message = '' yaz.
  2. hit'in sonuna patlama ve 21 satırlarını yaz.
  3. reset'in üstüne yorumuyla finish fonksiyonunu yaz.
  4. draw'da fiş satırının altına, bir boş satırdan sonra mesaj bloğunu yaz. Çalıştır ve patlayana kadar H'ye bas.

Beceriler: Oyun durumları

Tüm adımlar

  1. Kartlar
  2. Deste
  3. Karıştır
  4. Dağıt
  5. Masadaki kartlar
  6. Kart yüzleri
  7. Çizmeye devam
  8. Bir el kaç eder?
  9. As: 11 ya da 1
  10. Kart: bir kart daha
  11. Dur
  12. Kapalı kart
  13. Fişler
  14. Kim kazandı?
  15. Krupiyenin sırası
  16. Sonraki el
  17. Blackjack!
  18. Rekorun
  19. Katla
  20. Uzun el sığsın
  21. Düğmeler
  22. Kendin yap: altı deste