Atölye › XOX › 30/33. adım
Kurallı bilgisayarın bir açığı var: bir köşeye oyna, bilgisayar ortayı alır; sonra karşı köşeye oyna. Kazanacak ya da engelleyecek bir şey olmadığı için rastgele bir kutu seçer. O kutu bir köşeyse, X aynı anda iki çizgiyi tehdit eder (buna çatal denir) ve bilgisayar yalnız birini kapatabilir.
Her tuzak için yeni kural eklemek yerine bilgisayara geleceğin tamamına bakmayı öğreteceğiz. İlk parça: bitmiş bir oyuna O'nun gözünden puan vermek. O kazandıysa 1, X kazandıysa −1, berabere 0.
```js
// How good `cells` is for O if both sides play perfectly: 1 = O wins, -1 = X wins, 0 = draw.
function score(cells, turn) {
const end = outcome(cells)
if (end === 'O') return 1
if (end === 'X') return -1
if (end === 'draw') return 0
}
```function score(cells, turn) → iki parametre: bir tahta ve sıranın kimde olduğu ('X' ya da 'O'). turn'ü bir
sonraki adımda kullanacağız.const end = outcome(cells) → oyun bitti mi, kim kazandı?if (end === 'O') return 1 → O kazandıysa 1 (bilgisayar için iyi).if (end === 'X') return -1 → X kazandıysa −1 (kötü). Eksi sayılar - ile yazılır.if (end === 'draw') return 0 → berabere 0.return çalışmaz ve fonksiyon undefined döner. Bunu bir sonraki adımda dolduracağız.function computerMove(cells) { satırının üstüne yorum satırını ve score fonksiyonunu yaz.score'u bitmiş tahtalarla deneyecek.Beceriler: Fonksiyonlar
← Üçüncü kural: rakibi engelle İleriye bak: minimax →