Atölye › XOX › 18/33. adım
Şimdi 8 çizgiye sırayla bakıp kazanan bir çizgi var mı diye soran fonksiyonu yazıyoruz.
Bir çizgi ne zaman kazandırır? Üç kutusunda aynı işaret varsa ve o işaret boş değilse. ("Boş değil" kısmını unutursan, boş tahtada sekiz tane "hiçlik kazandı" çizgisi bulursun!) Ekranda yine bir şey değişmeyecek; kontroller fonksiyona farklı tahtalar verip deneyecek.
```js
function winningLine(cells) {
return LINES.find(([a, b, c]) => cells[a] !== '' && cells[a] === cells[b] && cells[a] === cells[c])
}
```function winningLine(cells) → tahtayı parametre olarak alır (cells, yani hücreler). Dışarıdaki board'a
kendisi bakmıyor; böylece ona istediğimiz tahtayı verip deneyebiliriz. Bu, ileride bilgisayar oyuncusu için çok
işe yarayacak.return → bulunan cevabı fonksiyonun cevabı olarak geri verir.LINES.find(test) → "testi geçen ilk çizgiyi bul ve ver". Hiçbiri geçmezse undefined verir: "tanımsız, yok".([a, b, c]) => ... → her çizgi için çalışan küçük fonksiyon. Köşeli parantezli yazım, çizginin üç numarasına
sırayla a, b, c adlarını verir. [0, 4, 8] için a 0, b 4, c 8 olur.cells[a] !== '' → ilk kutu boş değil...&& → "ve". cells[a] === cells[b] && cells[a] === cells[c] → ...ve üç kutu aynı.let player = 'X' satırının altına bir boş satır bırak.winningLine fonksiyonunu yaz. function play(index)'in üstünde kalsın, arada bir boş satır olsun.&& ve üç karşılaştırma var. Çalıştır.Beceriler: Diziler ve nesneler, Fonksiyonlar
← Sekiz kazanan çizgi Kazanç, beraberlik ya da devam →