Atölye › Mayın Tarlası › 25/26. adım
Son dokunuş: en iyi süre (rekor). Tarayıcının küçük not defterine, localStorage'a yazacağız; sayfa kapansa da
kalır. Kazanınca mesajda görünecek: You win! Best: 12s.
İki tuzak var:
< ile.0 kullanılamaz: şimşek hızında bir galibiyet gerçekten 0 saniye sürebilir; o zaman "rekor
yok" gibi görünür ve daha yavaş bir süre onun üstüne yazılırdı. "Hiçbir şey" için null kullanırız.```js
// null means "no best time yet"; 0 would be a real (very fast) time.
const saved = localStorage.getItem('mines-best')
let best = saved === null ? null : Number(saved)
const seconds = Math.floor((endTime - startTime) / 1000)
if (best === null || seconds < best) {
best = seconds
localStorage.setItem('mines-best', best)
}
ctx.fillText(state === 'won' ? 'You win! Best: ' + best + 's' : 'Boom! Click to retry', canvas.width / 2, TOP / 2)
```localStorage.getItem('mines-best') → defterden okur; hiç yazılmamışsa null ("hiçbir şey") verir.saved === null ? null : Number(saved) → kayıt yoksa null, varsa yazıyı sayıya çevir (defter her şeyi yazı
olarak saklar).win içinde: seconds → oyunun süresi. best === null || seconds < best → "rekor yok veya daha hızlı".
Açıkça === null diye soruyoruz; !best yazsaydık 0 da "yok" sayılırdı.localStorage.setItem('mines-best', best) → deftere yaz.'You win! Best: ' + best + 's' → 'You win! Best: 12s'.let now = 0 satırının altına yorum satırını, saved ve best satırlarını yaz.win'in sonuna seconds satırını ve if (best === null || ...) { ... } bloğunu yaz.draw'daki mesajda 'You win!' yerine 'You win! Best: ' + best + 's' yaz.Beceriler: Oyun durumları
← Saati durdur Kendin yap: yanlış bayraklar →