Atölye › Klondike Solitaire › 8/40. adım
Klondike'ın dağıtımı: 1. sütuna 1 kart, 2.'ye 2, ... 7.'ye 7 kart. Her sütunda yalnız en son kart açık, altındakiler kapalı. Toplam 1 + 2 + ... + 7 = 28 kart; kalan 24 kart destede kalır.
Kartları desteden kesip sütunlara koyacağız. Son kartı bulmak için de küçük bir yardımcı yazacağız: last.
```js
const last = (pile) => pile[pile.length - 1]
// Column i gets i + 1 cards, the last one face up; the rest is the stock.
function deal() {
const deck = newDeck()
piles = { stock: [], waste: [] }
for (let f = 0; f < 4; f++) piles['f' + f] = []
for (let i = 0; i < 7; i++) {
piles['t' + i] = deck.splice(0, i + 1)
last(piles['t' + i]).up = true
}
piles.stock = deck
}
```const last = (pile) => pile[pile.length - 1] → yığının son (en üstteki) kartı. pile.length eleman sayısı;
sayma 0'dan başladığı için 5 elemanlı dizinin sonuncusu 4. sırada.for (let i = 0; i < 7; i++) → yedi sütun: i 0'dan 6'ya.piles['t' + i] = deck.splice(0, i + 1) → splice(0, i + 1) destenin başından i + 1 kartı kesip alır
ve geri verir; deste o kadar kısalır. 0. sütun 1 kart, 6. sütun 7 kart alır.last(piles['t' + i]).up = true → sütunun son kartını açar.piles.stock = deck onu yine desteye koyar.const isRed = ... satırının hemen altına last satırını yaz.function deal() { satırının üstüne yorum satırını ekle.deal içinde temelleri açan for (let f ...) satırının altına sütunları dolduran for döngüsünü yaz.Beceriler: Diziler ve nesneler
← Yığınlar tek nesnede Her yığına bir yer →