Atölye › Wordle Tarzı Kelime Tahmini › 24/26. adım
Kelime oyunlarının tadı seride: art arda kaç kelime buldun? Üç sayıyı tek bir nesnede tutacağız:
{ played, won, streak } (oynanan, kazanılan, seri). Her oyun bitince güncelleyip tarayıcının not defterine,
localStorage'a kaydedeceğiz; sayfa kapansa da kalır.
Oyunun sonu artık state'i değiştirmekten fazlasını yapıyor; bu yüzden küçük bir fonksiyona taşıyoruz: finish(result).
Kazanma da kaybetme de aynı koddan geçer.
```js
let stats = JSON.parse(localStorage.getItem('word-stats') || '{"played":0,"won":0,"streak":0}')
function finish(result) {
state = result
stats.played += 1
if (result === 'won') {
stats.won += 1
stats.streak += 1
} else {
stats.streak = 0
}
localStorage.setItem('word-stats', JSON.stringify(stats))
}
if (current === answer) finish('won')
else if (guesses.length === TRIES) finish('lost')
```localStorage.getItem('word-stats') → defterden kaydı okur; ilk seferde yoktur (null).|| '{"played":0,"won":0,"streak":0}' → kayıt yoksa sıfırlarla dolu bir JSON yazısı kullan.JSON.parse(...) → yazıyı nesneye çevirir. (Defter sadece yazı saklar; nesneyi yazıya çevirmek için
JSON.stringify.)function finish(result) → result 'won' ya da 'lost': önce state = result.stats.played += 1 → her oyun sayılır. Kazanınca won ve streak de artar; kaybedince streak = 0.localStorage.setItem('word-stats', JSON.stringify(stats)) → nesneyi yazıya çevirip kaydet.type içinde state = 'won' yerine finish('won'), state = 'lost' yerine finish('lost').won ve played'den her zaman hesaplanabilir. Hesaplanabileni saklamamak, birbirini
tutmayan sayıları önler.let state ... satırının altına stats satırını yaz.score fonksiyonunun altına bir boş satır bırakıp finish fonksiyonunu yaz.type içindeki state = 'won' yerine finish('won'), state = 'lost' yerine finish('lost') yaz.Beceriler: Oyun durumları
← Hatırlayan tuşlar İstatistikleri göster →