if (IsPressed(keyRightArrow)) { while( !(IsPressed(keyUpArrow) || IsPressed(keyDownArrow))) {r1.PickThings(); r1.Turn(east); r1.Move();
}while( !(IsPressed(keyUpArrow) || IsPressed(keyDownArrow))); } if (IsPressed(keyLeftArrow)) { do {r1.Turn(west); r1.Move(); r1.PickThings(); }while( !(IsPressed(keyUpArrow) || IsPressed(keyDownArrow))); } if (IsPressed(keyUpArrow)) { do {r1.Turn(north); r1.Move(); r1.PickThings(); }while( !(IsPressed(keyLeftArrow) || IsPressed(keyRightArrow))); } if (IsPressed(keyDownArrow)) { do {r1.Turn(south); r1.Move(); r1.PickThings(); }while( !(IsPressed(keyLeftArrow) || IsPressed(keyRightArrow))); } }
}
Burada sorun şu ki, yılan belli bir yöne giderken döndürmeye kalkmak için bir tuşa bastığımda yılan önce duruyor ikinci kez bastığımda ancak dönüp harekete devam edebiliyor. Sebebini kestirebiliyorum ancak bi çözüm getiremedim.
Sizin alternatif bir çözümünüz varsa çok sevinirim:)
not: pause, break ve global variable ödevde kullanmak yasak. sadece main içerisinde gerekli değişiklikleri yaparak bi çözüm önerisi getirmeniz güzel olacaktır. teşekkürler