Atölye › XOX › 26/33. adım
Sen X koyunca bilgisayar hemen O koysun. Ama yalnız iki şart birlikte doğruysa: hamlen gerçekten olduysa (dolu kutuya tıklamadıysan) ve tur bitmediyse.
play'in true ya da false cevap vermesini istemiştik; o cevabı şimdi kullanıyoruz.```js
} else if (player === 'X') {
// The canvas may be displayed at a different size than its 300×300 pixels, so scale the click.
const rect = canvas.getBoundingClientRect()
const x = (event.clientX - rect.left) * (canvas.width / rect.width)
const y = (event.clientY - rect.top) * (canvas.height / rect.height)
const moved = play(Math.floor(y / CELL) * 3 + Math.floor(x / CELL))
if (moved && !result) play(computerMove(board))
}
```} else if (player === 'X') { → "değilse, eğer sıra X'teyse". Tıklamalar yalnız senin sıranda sayılır.const moved = play(...) → hamle yapılır ve play'in cevabı (true/false) moved'da tutulur. Kutu numarası
artık ayrı bir index değişkenine konmadan doğrudan play(...)'in içinde hesaplanıyor.!result → ! "değil" demek: "sonuç yok", yani tur sürüyor.if (moved && !result) play(computerMove(board)) → hamlen olduysa ve tur sürüyorsa, bilgisayarın seçtiği
kutuya oyna. Sıra zaten O'da olduğu için play O koyar ve sırayı sana geri verir.} else { satırını } else if (player === 'X') { yap.const index = ... ve play(index) satırlarını sil; yerine const moved = ... ve if (moved && !result) ...
satırlarını yaz.Beceriler: Klavye ve fare girdisi, Oyun durumları
← Kutu seçen bir bilgisayar Birinci kural: ortayı al →