Atölye › Satranç › 21/48. adım
Fil de kale gibi kayar, yalnız çapraz. Vezir ise kale ile filin toplamıdır: hem düz hem çapraz, 8 yön.
Kayma kodunu hiç değiştirmiyoruz; yalnız taşa göre hangi yön listesini dolaşacağımızı seçiyoruz. Kod da tam bunu söyleyecek: vezirin yönleri = düz yönler + çapraz yönler.
```js
const DIAGONAL = [[1, 1], [1, -1], [-1, 1], [-1, -1]]
if (kind === 'R' || kind === 'B' || kind === 'Q') {
const dirs = kind === 'R' ? STRAIGHT : kind === 'B' ? DIAGONAL : [...STRAIGHT, ...DIAGONAL]
for (const [dr, dc] of dirs) {
```const DIAGONAL = [...] → dört çapraz adım: sağ-aşağı, sol-aşağı, sağ-yukarı, sol-yukarı.kind === 'R' || kind === 'B' || kind === 'Q' → kale, fil ya da vezir.kind === 'R' ? STRAIGHT : kind === 'B' ? DIAGONAL : [...] → iki ? : art arda: kale ise düz yönler; değilse
fil ise çapraz yönler; o da değilse (vezir) ikisi birden.[...STRAIGHT, ...DIAGONAL] → ... (yayma) bir listenin elemanlarını açıp döker: iki listenin elemanlarından
8 elemanlı yeni bir liste olur.for (const [dr, dc] of dirs) → artık seçilen listeyi dolaşır.const STRAIGHT = ... satırının altına DIAGONAL satırını yaz.pseudoMoves içinde if (kind === 'R') { satırını ve altındaki for (const [dr, dc] of STRAIGHT) { satırını
sil; yerine üç yeni satırı yaz. Döngünün içi aynen kalır.Beceriler: Diziler ve nesneler
← Kale kayar Piyonlar ileri yürür →