Atölye › Yazı Yağmuru › 26/33. adım
Hızlı yazmak güzel, ama doğru yazmak da önemli. İşe yaramayan her tuş bir hata: hiçbir kelimenin başlamadığı bir harf ya da hedefin yanlış sıradaki harfi. Doğru harfleri ve hataları sayıp bir yüzde hesaplayacağız: doğruluk.
```js
let letters // correct letters typed
let mistakes
letters = 0
mistakes = 0
if (options.length === 0) {
mistakes += 1
return
}
if (target.text[typed] !== key) {
mistakes += 1
return
}
typed += 1
letters += 1
const accuracy = () => (letters + mistakes === 0 ? 100 : Math.round((100 * letters) / (letters + mistakes)))
```let letters → doğru yazılan harfler. let mistakes → hatalar. İkisi de reset içinde 0.return, süslü parantezli bloğa dönüştü: önce mistakes += 1, sonra return.letters += 1 → doğru her harf.const accuracy = () => (...) → 100 * letters / (letters + mistakes), Math.round ile tam sayıya yuvarlanmış.
3 doğru, 2 hata → 100 × 3 / 5 = 60.letters + mistakes === 0 ? 100 : ... → hiç tuşa basılmadıysa bölen sıfır olur; JavaScript'te 0 / 0 NaN
("sayı değil") verir ve ekranda "NaN%" yazardı. O zaman %100 diyoruz.let best = ... satırının üstüne let letters ... ve let mistakes yaz; reset'in sonunda state = 'playing'
satırının altına letters = 0 ve mistakes = 0 yaz.type içinde if (options.length === 0) return satırını, içinde mistakes += 1 ve return olan bir bloğa
çevir. Aynısını if (target.text[typed] !== key) return için yap. typed += 1 satırının altına letters += 1
yaz.document.addEventListener('keydown', ... satırının üstüne accuracy satırını yaz; altında bir boş satır
kalsın.Beceriler: Oyun durumları, Fonksiyonlar