Atölye › Klondike Solitaire › 37/40. adım
En hızlı kazandığın süreyi saklayacağız; böylece her zaman geçilecek bir rekor olur. Sayfa kapanınca değişkenler
silinir, ama tarayıcının küçük bir defteri var: localStorage. Oraya yazılan bilgi sayfa kapansa da kalır.
Rekor sağ üstte görünecek: Best 95s, henüz yoksa Best -.
```js
let best = Number(localStorage.getItem('solitaire-best')) || 0
const seconds = Math.floor(frames / 60)
if (best === 0 || seconds < best) {
best = seconds
localStorage.setItem('solitaire-best', best)
}
ctx.textAlign = 'right'
ctx.fillText('Best ' + (best ? best + 's' : '-'), canvas.width - LEFT, 24)
```localStorage.getItem('solitaire-best') → defterden 'solitaire-best' adlı kaydı okur. Kayıt yazı olarak
saklanır ('95'); hiç yoksa null gelir.Number(...) → yazıyı sayıya çevirir: '95' → 95. Number(null) → 0.|| 0 → soldaki değer "yanlış" sayılırsa (0, NaN...) 0 kullan. Rekor yoksa best 0.checkWin içinde:const seconds = Math.floor(frames / 60) → bu oyunun süresi.if (best === 0 || seconds < best) → henüz rekor yoksa veya bu süre daha kısaysa...best = seconds ve localStorage.setItem('solitaire-best', best) → ...yeni rekoru hem değişkene hem deftere yaz.ctx.textAlign = 'right' → verilen x yazının sağ ucu; canvas.width - LEFT sağ kenardan 16 piksel içeride.best ? best + 's' : '-' → rekor varsa 95s, yoksa -.let won satırının altına let best = ... satırını yaz.checkWin içinde won = true satırının altına beş satırı yaz.draw içinde ctx.fillText('Moves ' + ...) satırının altına, if (won) { satırının üstüne iki satırı yaz.Best - görmelisin.Beceriler: Oyun durumları
← Yeni oyun Masanın fotoğrafları →