Atölye › Sudoku › 15/28. adım
Sudoku oyuncuları saate karşı yarışır. Döngü bulmaca çözülene kadar kareleri saysın; 60 kare bir saniye. Süre sol üstte dakika:saniye olarak yazılsın.
```js
let frames
frames = 0
if (!won) frames += 1
const seconds = Math.floor(frames / 60)
const clock = (s) => Math.floor(s / 60) + ':' + String(s % 60).padStart(2, '0')
ctx.fillStyle = '#0f172a'
ctx.font = 'bold 18px sans-serif'
ctx.textAlign = 'left'
ctx.fillText('Time ' + clock(seconds), LEFT, 34)
```let frames → döngü turlarının sayısı; reset sıfırlar.if (!won) frames += 1 → çözülmediği sürece her karede 1 artır. 60 kare = 1 saniye.Math.floor(frames / 60) → geçen tam saniye.const clock = (s) => ... → saniyeyi dakika:saniyeye çeviren kısa bir fonksiyon: Math.floor(s / 60) dakika,
s % 60 kalan saniye. 75 → 1:15.String(s % 60).padStart(2, '0') → saniye tek haneliyse başına 0: 5 → 05.let selected satırının altına let frames yaz; reset içinde selected = ... satırının altına frames = 0 yaz.loop'un ilk satırı if (!won) frames += 1 olsun.draw'ın sonuna, çizgi döngüsünün altına bir boş satır bırakıp süre satırlarını yaz.Beceriler: Oyun döngüsü