Atölye › Satranç › 34/48. adım
Rokun son kuralı: şah
Üçüncüsünü legalMoves zaten yakalıyor (hamleyi dener, şaha bakar). Eksik olan ilk ikisi: şahın başlangıç
karesi (4. sütun) ve üstünden geçtiği kare (kısa rokta 5., uzun rokta 3. sütun).
```js
return pseudoMoves(color).filter((m) => {
if (m.castle) {
const row = m.from[0]
// No castling out of check or across an attacked square.
if (attacked(row, 4, other(color)) || attacked(row, m.castle === 'K' ? 5 : 3, other(color))) return false
}
```if (m.castle) { → yalnız rok hamlelerine ek kontrol.const row = m.from[0] → şahın sırası.attacked(row, 4, other(color)) → şahın durduğu kare saldırı altında mı? (Yani şah çekilmiş mi?)attacked(row, m.castle === 'K' ? 5 : 3, other(color)) → şahın üstünden geçeceği kare saldırı altında mı?return false → biri bile doğruysa bu hamleyi listeden at; aşağıdaki deneme hiç yapılmaz.legalMoves içinde return pseudoMoves(color).filter((m) => { satırının hemen altına (const undo = ...
satırının üstüne) rok kontrolünü yaz.Beceriler: Oyun durumları
← Rok hakkını kaybetmek Çift adımı hatırla →