Atölye › Klondike Solitaire › 7/40. adım
Klondike bir yığınlar oyunudur. Toplam 13 yığın var:
stock, kapalı) ve yanında açılan kartlar (waste);f0–f3, foundation): her renk burada as'tan papaza dizilir;t0–t6, tableau): oyunun asıl oynandığı yer.Hepsini tek bir nesnede, piles'ta tutacağız; her yığın bir kart dizisi. Bu adımda deal (dağıt) fonksiyonu
bütün desteyi stock'a koyacak. Sütunları bir sonraki adımda dolduracağız.
```js
let piles // stock, waste, f0..f3 (foundations) and t0..t6 (tableau): arrays of { rank, suit, up }
function deal() {
const deck = newDeck()
piles = { stock: [], waste: [] }
for (let f = 0; f < 4; f++) piles['f' + f] = []
piles.stock = deck
}
deal()
```let piles → yığınların değişkeni. deal onu dolduracak; let çünkü her yeni oyunda baştan kurulacak.
Yanındaki yorum hangi yığınların olacağını hatırlatıyor.const deck = newDeck() → karışık yeni bir deste al.piles = { stock: [], waste: [] } → iki boş yığınlı bir nesne. Anahtar stock, değeri boş dizi [].for (let f = 0; f < 4; f++) piles['f' + f] = [] → nesneye köşeli parantezle yeni anahtar ekler. 'f' + 0
→ 'f0': yazıyla sayı + ile birleşir. Döngü f0, f1, f2, f3 temellerini boş olarak açar.
(piles['f0'] ile piles.f0 aynı şeydir; ad hesaplanacaksa köşeli parantez gerekir.)piles.stock = deck → bütün deste, desteye (stock) gider.deal() → sayfa açılınca bir kez dağıt. Döngüden önce çağrılır ki ilk çizimde yığınlar hazır olsun.const CH = 78 satırının altına bir boş satır bırak ve yorumuyla birlikte let piles ... satırını yaz.newDeck fonksiyonunun kapanan }'sinden sonra bir boş satır bırak ve deal fonksiyonunu yaz.requestAnimationFrame(loop) satırının hemen üstüne deal() yaz.Beceriler: Diziler ve nesneler, Oyun durumları
← Karıştır Yedi sütunu dağıt →