Atölye › Sokoban › 22/29. adım
Bir bölümü çözmek güzel; az hamlede çözmek daha güzel. Hamleleri sayıp sağ üste yazacağız: Moves: 12.
Sadece gerçekleşen adımlar sayılmalı: duvara ya da sıkışmış kutuya çarpan adım sayılmaz.
```js
let moves
function loadLevel(index) {
// ...
moves = 0
}
function move(dx, dy) {
// ...
player = { x, y }
moves += 1
}
ctx.textAlign = 'right'
ctx.fillText('Moves: ' + moves, canvas.width - 12, TOP / 2)
```let moves → hamle sayacı. loadLevel'ın sonunda moves = 0: her bölüm sıfırdan başlar. (// ... satırları
"buradaki kod aynı kalıyor" demek; onları yazma.)moves += 1 → move'un en sonunda, player = { x, y }'nin altında. Engellenen adımlar daha önce return ile
çıktığı için buraya hiç ulaşmaz; sayılmazlar.ctx.textAlign = 'right' → yazının sağ ucu verilen x'e gelir. canvas.width - 12 → sağ kenardan 12 piksel içeri.
Sayı büyüdükçe yazı sola doğru uzar.let player satırının altına let moves yaz.loadLevel'ın sonuna, kapanan }'den hemen önce moves = 0 yaz.move'un sonuna, player = { x, y } satırının altına moves += 1 yaz.draw içinde Level satırının altına iki satırı yaz.Beceriler: Oyun durumları
← Alttaki satır Oyunun fotoğrafı →