Atölye › Klondike Solitaire › 19/40. adım
Şimdi oyunun kurallarını yazıyoruz. Birinci kural, sütunlar için: bir kart, bir büyük değerdeki ve öteki renkteki açık bir kartın üstüne konabilir. Kırmızı 9, siyah 10'un üstüne gider; siyah 9 gitmez.
Boş bir sütuna ise yalnız papaz (13) konabilir.
canStack (dizilebilir mi?) yalnız soruyu cevaplar, hiçbir şeyi değiştirmez. Böyle fonksiyonlara saf fonksiyon
denir: denemesi kolaydır ve oyunun her yeri onlara güvenebilir.
```js
// Tableau: one lower, the other color; only a king goes into an empty column.
function canStack(card, pile) {
const under = last(pile)
if (!under) return card.rank === 13
return under.up && under.rank === card.rank + 1 && isRed(under) !== isRed(card)
}
```const under = last(pile) → kartın üstüne konacağı kart: yığının son kartı. Yığın boşsa last undefined
(tanımsız) verir.if (!under) return card.rank === 13 → üstüne konacak kart yoksa (boş sütun) cevap: "kart papaz mı?".
card.rank === 13 kendisi true ya da falsetur; onu doğrudan geri veririz.return under.up && under.rank === card.rank + 1 && isRed(under) !== isRed(card) → üç koşul && (ve) ile bağlı;
hepsi doğruysa cevap true:under.up → alttaki kart açık,under.rank === card.rank + 1 → alttaki bir büyük (9'un altı 10),isRed(under) !== isRed(card) → renkler farklı. İkisi de kırmızıysa true !== true → yanlış; biri kırmızı biri
siyahsa true !== false → doğru. Renk farkını söylemenin kısa yolu.cardY fonksiyonunun altına bir boş satır bırak ve yorumuyla birlikte canStack fonksiyonunu yaz. Çalıştır:
ekran aynı, kontroller yeşil.
Beceriler: Fonksiyonlar
← Desteye dokun Kural 2: temele dizmek →