Atölye › Scorched Earth Tarzı Topçu › 17/23. adım

Kazan ya da kaybet

Ne yapıyoruz

Bir atış bir tankın canını 0'a indirince oyun biter: bilgisayarınki ise kazanırsın, seninki ise kaybedersin. Bir kutu bunu söylesin; Boşluk yeni tepelerle yeni bir oyun başlatsın.

```js
function endTurn() {
  if (tanks[1].hp === 0) state = 'won'
  else if (tanks[0].hp === 0) state = 'lost'
  else {
    turn = 1 - turn
    state = 'aiming'
    if (turn === 1) thinking = 60
  }
}

    if (state === 'won' || state === 'lost') reset()
    else if (turn === 0) fire()

  if (state === 'won' || state === 'lost') {
    ctx.fillStyle = 'rgba(15, 23, 42, 0.8)'
    ctx.fillRect(140, 110, 280, 80)
    ctx.fillStyle = 'white'
    ctx.textAlign = 'center'
    ctx.font = 'bold 22px sans-serif'
    ctx.fillText(state === 'won' ? 'You win!' : 'You lose', W / 2, 145)
    ctx.font = '15px sans-serif'
    ctx.fillText('Space or tap to play again', W / 2, 172)
  }
```

Ne işe yarıyor

Sıra sende

  1. endTurn'ü kazanma ve kaybetme kontrolleri önde olacak şekilde yeniden yaz.
  2. Boşluk bloğunda if (turn === 0) fire() satırının üstüne yeniden başlatma satırını yaz ve onu else if yap.
  3. draw'ın sonuna oyun bitti kutusunu yaz. Çalıştır.

Beceriler: Oyun durumları

Tüm adımlar

  1. Zemin
  2. Tepeler
  3. İki tank
  4. Namlu
  5. Oyun döngüsü
  6. Nişan al
  7. Açı ve güç
  8. Ateş!
  9. Uçuş
  10. Bum
  11. Kraterler
  12. Düşen tanklar
  13. Hasar
  14. Sırayla
  15. Bilgisayarın atışı
  16. Tanka isabet
  17. Kazan ya da kaybet
  18. Rüzgâr
  19. Bilgisayar nişan alıyor
  20. Fareyle nişan al
  21. Sürükle ve bırak
  22. atan2 tuzağı
  23. Kendin yap: iz