Atölye › Pac-Man Tarzı Labirent Kovalamaca › 22/42. adım
Oyuna dört hayalet katılıyor: kırmızı, pembe, turuncu, camgöbeği. Tarif listesine iki yeni bilgi ekliyoruz:
corner → her hayaletin kendi köşesi (birazdan işe yarayacak).delay → evde kaç kare bekleyeceği. Hepsi aynı anda çıksa oyunun başı çok zor olurdu.Hayaletler artık evin içinde başlıyor. Evden çıkarmayı release (serbest bırak) yapacak: hayaleti evin üstündeki
çıkış döşemesine koyar, sola yönlendirir. Kırmızının bekleme süresi 0; o hemen çıkar. Diğerleri bu adımda evde
bekler; saymayı bir sonraki adımda ekleyeceğiz.
```js
const GHOSTS = [
{ name: 'red', color: '#ef4444', corner: { col: 18, row: 0 }, delay: 0 },
{ name: 'pink', color: '#f9a8d4', corner: { col: 0, row: 0 }, delay: 120 },
{ name: 'orange', color: '#fb923c', corner: { col: 0, row: 20 }, delay: 300 },
{ name: 'cyan', color: '#22d3ee', corner: { col: 18, row: 20 }, delay: 480 },
]
ghosts = GHOSTS.map((g, i) => ({ ...g, col: 8 + (i % 3), row: 9, dir: STOP, progress: 0, frames: 10, waiting: g.delay }))
for (const g of ghosts) if (g.waiting === 0) release(g)
}
// Out of the house: the ghost starts on the tile above it, heading left.
function release(g) {
Object.assign(g, { col: EXIT.col, row: EXIT.row, dir: [-1, 0], progress: 0 })
}
```GHOSTS → artık dört tarif; her birinde corner (köşe) ve delay (gecikme, kare cinsinden: 120 kare = 2 saniye).GHOSTS.map((g, i) => ...) → map ikinci ad olarak elemanın sıra numarasını da verir: 0, 1, 2, 3.col: 8 + (i % 3) → % kalan: 0, 1, 2, 0. Hayaletler evin 8., 9., 10. sütunlarına dağılır.row: 9, dir: STOP → evin içinde, duruyor. waiting: g.delay → bekleyeceği kare sayısı.for (const g of ghosts) if (g.waiting === 0) release(g) → beklemesi 0 olanı (kırmızı) hemen çıkar.Object.assign(g, { ... }) → var olan bir nesneye birden çok alanı tek seferde yazar.chooseGhost açık yol bulamaz ve hayalet
kıpırdamaz.const GHOSTS = [...] satırını dört tarifli listeyle değiştir.placeActors içinde ghosts = ... satırını yenisiyle değiştir ve altına for satırını yaz.placeActors'ın altına bir boş satır bırakıp yorumu ve release fonksiyonunu yaz.Beceriler: Oyun durumları, Diziler ve nesneler
← Hayalet seni avlar Evden birer birer →