Öncelikle tanımlamalar yapılmış.
- Programda yer alan
while
döngüsünün, oyunu temsil ettiği söyleniyor.
- Her döngü yenilemesi oyunun bir dönüşünü temsil ediyor.
- Programın ihtiyacı olan girdi ve veriyi
heights
ile mountains
de tutacak.
- Çıktı göstermen zaman da “
the index of the mountain to fire on
” yazan yere yazacaksın.
- Verilen girdiler son eylemlere göre otomatik güncelleniyor.
Şimdi kodu okuyalım;
iki modüle ihtiyacımız var. Birincisi sys
diğeri math
sys
için kaynak; (python sistemine ilişkin nitelikler için lazım)
https://python-istihza.yazbel.com/standart_moduller/sys.html
math
için kaynak; (matematiksel işlemler için kullanılacak)
https://python-istihza.yazbel.com/standart_moduller/math.html
import sys
import math
while True: #döngü oluşturulmuş
ans = 1 #
height = 0 # yükseliğin başlangıç değeri belirlenmiş
for i in range(8): #range ile 8 e kadar bir liste oluşturulmuş. For döngüsü 8 kere çalışacak demektir bu-
#(0 dan başlar 8 e kadar gider. 8 dahil değil!)
mountain_h = int(input()) #dağ yüksekliğini kullanıcıdan alıyor.
if mountain_h>height: #eğer dağ yüksekliği yukarıda belirlenen (height=0) değerden büyük ise şunları yap
ans=i #ans değişkenine for döngüsündeki i değişkeninin range(8) de oluşturulan listeden karşılık gelen değeri ver
height=mountain_h #yükseklik değişkenimizin yeni değerini kullanıcıdan alınan yükseklik değeri olarak değiştir
#böylelikle ne oluyor? her seferinde kullanıcıdan bir öncekinden daha fazla bir yükseklik girmesi gerekeceği için-
#for döngüsünde range(8) içinde dönen i değişkeni ans değişkenine yazılacak. Her seferinde bu değer-
#artacağı için program çalıştığında hep bir yükselişte olacak
# Döngü başa dönmeden önce bir eylem gerçekleştirmek istiyorsak buraya print edebiliriz
# Hata ayıklamak ve bilgilendirmek için şunları kullanabiliriz; print("Debug messages...", file=sys.stderr, flush=True)
# Son olarak da dağın ateşe verilecek indeksini yazdır.
print(ans) #yazdırdık.
Yani biraz eksik var sanki, öyle hissettiriyor. Kodun tamamının bu olduğuna emin misiniz?