Atölye › Yılan › 19/28. adım
Sağa giden yılan birden sola dönerse kendi boynuna çarpar. Gerçek Yılan oyununda bu yasaktır: tam ters yöne basılırsa görmezden gelinir.
Bir incelik daha: oyuncu iki tuşa çok hızlı basarsa (yukarı, hemen sonra sol) yılan daha hareket etmeden yön iki
kez değişir ve yine geri dönmüş olur. Bu yüzden seçilen yönü nextDir'de (sıradaki yön) bekletip, yılan
gerçekten hareket ederken dir'e aktaracağız.
```js
let nextDir = dir
// Ignore a turn straight back into the snake's own neck.
if (turn.x === -dir.x && turn.y === -dir.y) return
nextDir = turn
function update() {
dir = nextDir
```let nextDir = dir → sıradaki yön; başta şu anki yönle aynı.if (turn.x === -dir.x && turn.y === -dir.y) return → ters yön, iki sayının eksi işaretlisidir:
sağın (1, 0) tersi solun (-1, 0). Yeni yön şu anki yönün tam tersiyse hiçbir şey yapma.nextDir = turn → yönü hemen değiştirmiyoruz, sıraya koyuyoruz.update içindeki dir = nextDir → yılan hareket etmeden hemen önce sıradaki yön asıl yön olur. Böylece her
harekette yön en fazla bir kez değişir.let dir = ... satırının altına let nextDir = dir yaz.if (!turn) return satırının altına yorum satırını ve ters yön kontrolünü yaz; dir = turn
satırını nextDir = turn yap.update fonksiyonunun ilk satırı dir = nextDir olsun.Beceriler: Klavye ve fare girdisi, Oyun durumları