Bir oyun döngüsünde 'Can' değişkeni 3'ten başlar. Karakter dikene değdiğinde 'Can' değeri 1 azalır. Programcı kodu şu şekilde yazmıştır: 'Sürekli Tekrarla: Eğer dikene değiyor \mu? ise Can = Can - 1' \nAncak karakter dikene bir kez değdiğinde canı saniyeler içinde 3'ten 0'a düşüp oyun bitmektedir. Bu mantık hatasının (bug) temel sebebi nedir?
Şıklar
'Can' değişkeni yanlışlıkla 0'dan başlatılmıştır.
Dikenler çok büyüktür.
Karakter dikene değdiğinde kod çok hızlı çalıştığı için temas süresince can eksiltmeye devam etmektedir.
'Eğer' bloğu yerine 'Değilse' bloğu kullanılmalıdır.
Çözüm Açıklaması
Bilgisayarlar çok hızlı çalışır. Karakter dikene değdiği sürece (örneğin yarım saniye bile olsa) kod binlerce kez çalışır ve canı hemen bitirir. Hatayı ayıklamak için araya '1 saniye bekle' gibi bir komut eklenmelidir.
Video Çözüm
AI ile video çözüm oluştur
İnteraktif Çözüm
Adım adım, sesli ve animasyonlu çözüm. Quiz ile kendini test et!