Atölye › Dört Bağla › 23/38. adım
Akıllıca bir gözlem: her hamleden sonra bütün tahtada dörtlü aramaya gerek yok. Yeni bir dörtlü mutlaka az önce inen diskten geçer. O yüzden sadece o diskin çevresine, dört yönde bakacağız: yatay, dikey ve iki çapraz.
wins4(row, col) dört ya da daha uzun ilk çizgiyi verir; yoksa null ("hiçbir şey").
```js
const DIRECTIONS = [
[1, 0],
[0, 1],
[1, 1],
[1, -1],
]
function wins4(row, col) {
for (const dir of DIRECTIONS) {
const cells = lineThrough(row, col, dir)
if (cells.length >= 4) return cells
}
return null
}
```DIRECTIONS → dört yönün listesi; her biri bir [dx, dy] çifti: yatay [1, 0], dikey [0, 1], çaprazlar [1, 1]
ve [1, -1]. Okunsun diye her çift kendi satırında.for (const dir of DIRECTIONS) → her yön için.lineThrough(row, col, dir) → o yönde çizgi.cells.length >= 4 → 4 ya da daha fazla hücreyse (5'li de kazanır) o çizgiyi geri ver.return null → hiçbir yönde yoksa: dörtlü yok.const COLORS = ... satırının altına DIRECTIONS dizisini yaz.function play( satırının üstüne wins4 fonksiyonunu yaz; altında bir boş satır kalsın.Beceriler: Döngüler, Oyun durumları
← Bir çizgi boyunca yürümek Kazanan var →