Atölye › Adam Asmaca › 22/36. adım

Parçalar bir listede

Ne yapıyoruz

Altı if çalışıyor ama hepsi aynı şeyi söylüyor: "n. ıskada n. parçayı çiz". Tekrar eden kod, daha düzgün bir yol olduğunun işaretidir.

Fikir: parçaları sırayla bir listeye koymak ve ilk wrong tanesini çizmek. Listenin elemanları sayı ya da yazı değil, fonksiyon olacak: her eleman bir parçayı çizen küçük bir fonksiyon. JavaScript'te fonksiyonlar da birer değerdir; sayılar gibi bir listede durabilirler. Ekran aynı kalacak; kod toparlanacak.

```js
// One drawing per wrong guess.
const PARTS = [
  () => {
    ctx.beginPath()
    ctx.arc(170, 110, 20, 0, Math.PI * 2) // head
    ctx.stroke()
  },
  () => line(170, 130, 170, 200), // body
  () => line(170, 150, 140, 180), // left arm
  () => line(170, 150, 200, 180), // right arm
  () => line(170, 200, 145, 245), // left leg
  () => line(170, 200, 195, 245), // right leg
]

  for (let i = 0; i < wrong; i++) PARTS[i]()
```

Ne işe yarıyor

Sıra sende

  1. function draw() { satırının üstüne yorum satırıyla birlikte PARTS listesini yaz; arada bir boş satır kalsın. Başın üç satırını if bloğundan buraya taşıyabilirsin.
  2. draw içinde başı çizen if (wrong > 0) { ... } bloğunu ve beş if satırını sil; yerlerine tek for satırını yaz (ctx.lineWidth = 4 satırının altına).
  3. Çalıştır: oyun aynı görünmeli ve aynı çalışmalı.

Beceriler: Diziler ve nesneler, Fonksiyonlar

Tüm adımlar

  1. Gizli kelimelerin listesi
  2. Tuval ve kalem
  3. Kâğıdı boya
  4. Çizen bir fonksiyon
  5. Rastgele bir kelime seç
  6. Kelimeyi yaz
  7. Boşluklarla gizle
  8. Tahminleri hatırla
  9. Tekrar tekrar çiz
  10. Bir tahmin
  11. Klavyeyle tahmin et
  12. Sadece harfler sayılır
  13. Iskaları say
  14. Aynı harf iki kez bedava
  15. En fazla altı ıska
  16. Iskaları göster
  17. Yanlış harfleri listele
  18. Çizgi çiz
  19. Darağacı
  20. İlk ıska: baş
  21. Gövde, kollar ve bacaklar
  22. Parçalar bir listede
  23. Kaybetmek
  24. Kazanmak
  25. Kaçırdığın kelimeyi göster
  26. Bitiş mesajı
  27. Yeniden oyna
  28. Aynı kelime art arda gelmesin
  29. Galibiyet serisi
  30. En iyi seriyi hatırla
  31. Her tuş nereye
  32. Tuşları çiz
  33. Son satırı ortala
  34. Hatırlayan tuşlar
  35. Tuşa dokun
  36. Kendin yap: ipucu düğmesi