Atölye › Renk Hafızası (Simon) › 13/27. adım
Oyun iki aşamadan birindedir: bilgisayar diziyi gösteriyordur ('showing') ya da oyuncunun cevabını
bekliyordur ('input'). Hangisinde olduğumuzu tek bir değişken söyler: state.
Tur başlayınca kısa bir bekleme olur (40 kare), sonra bilgisayar ilk tuşu 30 kare yakar ve sırayı oyuncuya verir.
Beklemeyi de bir geri sayımla yaparız: timer.
```js
let state // 'showing' or 'input'
let timer
state = 'showing'
timer = 40 // a short pause before the sequence is shown
if (state !== 'showing') return
timer -= 1
if (timer > 0) return
light(sequence[0], 30)
state = 'input'
```let state, let timer → değer vermeden tanıtıyoruz; değerlerini nextRound veriyor.nextRound içinde state = 'showing' → gösteri başlasın. timer = 40 → önce 40 karelik kısa bir bekleme.update içinde:if (state !== 'showing') return → !== "eşit değil mi?". Gösteri yapmıyorsak return ile hemen çık;
aşağısı çalışmaz.timer -= 1 → zamanlayıcıyı bir azalt.if (timer > 0) return → daha zaman varsa çık, bir sonraki karede yine bak.light(sequence[0], 30) → dizinin ilk tuşunu 30 kare yak.state = 'input' → sıra oyuncuda.litFor bölümü if (state ...) satırının üstünde kalmalı: tuş, gösteri bitince de sönebilsin.let sequence = [] ... satırının altına let state ... ve let timer satırlarını yaz.nextRound içinde sequence.push(...) satırının altına state ve timer satırlarını yaz.update içinde, litFor bloğunun kapanan } işaretinin altına (fonksiyonun son } işaretinden önce) beş yeni
satırı yaz.Beceriler: Oyun durumları, Oyun döngüsü
← Yeniden sön Bütün diziyi göster →