Atölye › Satranç › 32/48. adım
Rokta şah iki kare gider, kale de şahın öbür yanına geçer:
makeMove kaleyi taşıyacak, undoMove geri koyacak. Şahı zaten taşıyorlar (o sıradan bir hamle gibi).
```js
board[fr][fc] = ''
if (m.castle === 'K') [board[fr][5], board[fr][7]] = [board[fr][7], '']
if (m.castle === 'Q') [board[fr][3], board[fr][0]] = [board[fr][0], '']
board[tr][tc] = undo.captured
if (undo.m.castle === 'K') [board[fr][7], board[fr][5]] = [board[fr][5], '']
if (undo.m.castle === 'Q') [board[fr][0], board[fr][3]] = [board[fr][3], '']
```[board[fr][5], board[fr][7]] = [board[fr][7], ''] → iki yere birden değer verir: sağdaki listenin ilk
elemanı soldakinin ilkine, ikincisi ikincisine. Yani 5. sütuna köşedeki kale, köşeye ''. Kale bir hamlede yer
değiştirmiş olur.fr şahın sırası; kale de aynı sırada.undoMove'daki iki satır tam tersini yapar: kale 5.'den (ya da 3.'den) köşesine döner.makeMove içinde board[fr][fc] = '' satırının altına iki m.castle satırını yaz.undoMove içinde board[tr][tc] = undo.captured satırının altına iki undo.m.castle satırını yaz.Beceriler: Oyun durumları
← Rok hamleleri Rok hakkını kaybetmek →