Atölye › Satranç › 26/48. adım
Kale, fil ve vezir uzaktan saldırır. Yine kareden dışarı bakacağız, ama bu kez kayarak: her yönde kare kare ilerle ve ilk rastladığın taşa bak.
```js
for (const [dirs, kind] of [[STRAIGHT, 'R'], [DIAGONAL, 'B']]) {
for (const [dr, dc] of dirs) {
let tr = r + dr
let tc = c + dc
while (inside(tr, tc)) {
const piece = board[tr][tc]
if (piece) {
if (piece === by + kind || piece === by + 'Q') return true
break
}
tr += dr
tc += dc
}
}
}
```[[STRAIGHT, 'R'], [DIAGONAL, 'B']] → yine çiftler: düz yönler kaleyle, çapraz yönler fille eşleşir.while (inside(tr, tc)) { → kalenin kayması gibi kare kare ilerle.if (piece) { → ilk taşa rastladık:piece === by + kind || piece === by + 'Q' → o yönün taşı (kale ya da fil) veya vezir mi? Vezir iki
listede de sayılır, çünkü iki türlü de gider.break → saldıran değilse bu yön kapandı; sıradaki yöne geç.tr += dr, tc += dc ile ilerlemeye devam.attacked içinde, sondaki return false satırının üstüne kayan saldıranları arayan döngüleri yaz.Beceriler: Döngüler
← Kare saldırı altında mı? Şah tehdit altında mı? →