Atölye › Bomberman Tarzı Arena › 31/42. adım
Titreyen düşmanların klasik çaresi: her karede gidebileceği yollardan geri dönmeyi çıkar, kalanlardan birini seç. Yalnız çıkmaz sokakta, geri dönmek tek seçenekken geri dönsün. Böylece düşmanlar gidecek bir yerleri varmış gibi koridor boyunca yürür.
Bir yönün tersi, iki sayısının eksilisidir: sağın [0, 1] tersi sol [0, -1].
```js
// Enemies wander: at each tile they pick a way they can go, and only turn back at a dead end.
function updateEnemy(e) {
const forward = options.filter(([dr, dc]) => dr !== -e.dir[0] || dc !== -e.dir[1])
const pick = forward.length ? forward : options
e.dir = pick[Math.floor(Math.random() * pick.length)]
```-e.dir[0] → son yönün satır farkının eksilisi; -e.dir[1] sütun farkınınki. İkisi birlikte geri yön.dr !== -e.dir[0] || dc !== -e.dir[1] → iki sayıdan biri bile farklıysa bu yön geri değildir; tutulur.forward.length ? forward : options → ? : içinde bir sayı doğru/yanlış gibi okunur: 0 yanlış, diğerleri doğru.
"İleri yol varsa onlardan, yoksa (çıkmaz sokak) hepsinden seç."pick[Math.floor(Math.random() * pick.length)] → rastgele seçim artık pick listesinden.dir [0, 0]; tersi de [0, 0], hiçbir yöne eşit değil: ilk seçimde her yol serbest.updateEnemy içindeki e.dir = options[...] satırını sil; yerine üç yeni satırı yaz.function updateEnemy(e) { satırının üstüne yorum satırını yaz.Beceriler: Oyun durumları, Diziler ve nesneler
← Düşmanlar dolaşır Vur ve değme →