Atölye › Renk Hafızası (Simon) › 14/27. adım

Bütün diziyi göster

Ne yapıyoruz

Dizide birden çok tuş olunca hepsini sırayla göstermeliyiz. Bunu bir for döngüsüyle yapamayız: döngü bütün diziyi tek bir karede bitirir, göz hiçbir şey görmez.

Bunun yerine gösteriyi birçok kareye yayarız: showAt sıradaki adımı hatırlar; her tuştan sonra zamanlayıcı yeniden kurulur. Dizi bitince sıra oyuncuya geçer.

```js
let showAt // which step of the sequence is being shown, and when

  showAt = 0

  if (showAt === sequence.length) {
    state = 'input'
    return
  }
  // Light the next pad, then wait a little longer than it stays lit, so repeats are two separate flashes.
  light(sequence[showAt], 30)
  showAt += 1
  timer = 30 + 8
```

Ne işe yarıyor

Sıra sende

  1. let state ... satırının altına let showAt ... satırını yaz.
  2. nextRound içinde state = 'showing' satırının altına showAt = 0 yaz.
  3. update'in sonundaki light(sequence[0], 30) ve state = 'input' satırlarını sil; yerine yeni satırları yaz.
  4. Çalıştır. Uzun bir dizi görmek için en alttaki nextRound() satırını geçici olarak üç kez yaz. Sonra teke indir.

Beceriler: Oyun durumları, Oyun döngüsü

Tüm adımlar

  1. Canvas'ı ve kalemi al
  2. Koyu bir tahta
  3. İlk tuş
  4. Her tuşa iki renk
  5. Dört tuşun hepsi
  6. Çizen bir fonksiyon
  7. Bir tuşu yak
  8. Durmadan çiz
  9. Hatırlanacak dizi
  10. Turu göster
  11. Bir tuşu bir süre yak
  12. Yeniden sön
  13. Bilgisayar bir tuş gösterir
  14. Bütün diziyi göster
  15. İzle, sonra sıra sende
  16. Her basışı kontrol et
  17. Klavyeyle oyna
  18. Bir noktada hangi tuş var?
  19. Fareyle oyna
  20. İlerleme ve hata
  21. Yeni oyun fonksiyonu
  22. Yeniden denemek için tıkla
  23. Basınca yan
  24. Gittikçe hızlan
  25. Rekoru kaydet
  26. Rekoru göster
  27. Kendin yap: oyalanmak yok