Hazırlayan: Lisa Yan
Çeviren: Ahmet Uysal
Ders Notları: Karel Referansı
Çözümlü Örnekler: Beeper Hattı
Dosya: square_karel.py
Göreviniz Karel'in dünyasının sınırlarını aşağıda görebileceğiniz resimdeki gibi beeper'larla donatmak.
Programınızı yazarken bu varsayımları yapabilirsiniz:
Yazdığınız program yukarıdaki varsayımlara uygun farklı boyutlardaki dünyalarda da çalışabilmeli. Alternatif bir dünyayı aşağıda görebilirsiniz:
Bilgisayarın anlayıp çalıştırabildiği bir program yazmak etkileyici bir başarı. Fakat asıl hedeflemen gereken insanların da kolaylıkla anlayabileceği programlar yazmak.
Ayrıştırma (Decomposition). Fonksiyonlar yaratarak programını küçük parçalara bölebileceğini ve bu fonksiyonlara anlamlı isimler vererek onları gerekli yerlerde kullanabileceğini unutma. Beeper Hattı örneğini fonksiyon oluşturma konusunda fikir almak için inceleyebilirsin. Bu örneği bir başlangıç noktası olarak al ve neleri değiştirmen gerektiğini anlamaya çalış.
Döngüleri kullanmak. Programında aşağıdaki gibi bir for
döngüsünü kullandın mı?
for i in range(4):
# your code here
Eğer kullanmadıysan programını for
döngüsü kullanacak şekilde düzenlemelisin. Bunu yapman kodunu çok daha iyi organize edebilmeni sağlayacak, söz veriyoruz :-)
Great job so far! There is one more topic, called if
statements, that you will learn soon. Once you have learned that, you can optionally revisit this problem if you have extra time, and try to modify your program using everything you've learned, including if
statements, to make Karel draw the following square, where all beepers in the square outline do not border any walls. This means that 1x1 and 2x2 worlds will not have any beepers in them. The world could also be any size, including non-square.
Bu aşamaya kadar geldiğin için tebrik ederiz! Yakın zamanda if
ifadesini kullanarak nasıl şartlara bağlı ifadeler yazabileceğini öğreneceksin. if
ifadelerini öğrendikten sonra istersen bu problemi tekrar ziyaret edebilir ve aşağıdaki bonus görevi tamamlayabilirsin.
Programını Karel'e aşağıda gördüğün beeper'ların sınıra bir birim daha uzak olduğu kareyi yerleştirecek şekilde güncelle. Bu Karel'in 1x1 ve 2x2 boyutundaki dünyalara hiç beeper yerleştirmeyeceği anlamına da geliyor. Bu sefer Karel'in dünyası kare olmak zorunda değil, herhangi bir dikdörtgen boyutlarında olabilir.
Bonus görevi yapmak tamamen isteğe bağlıdır, zorunlu değildir.