Bu derste Reeborg'a iki sayıyı toplamayı öğreteceğiz. Bunu 10 tabanına göre yapacağız, ancak aynı yöntemi farklı tabandaki sayıları toplamak için de kullanabiliriz.
İki rakamı geleneksel yolla toplayalım:
528 + 634 ------ 12 # önce birler basamağını topluyoruz (8+4)
Elde bir var ve bunu onlar basamağına eklememiz gerekiyor. Eldeki bir programınızda problem yaratan kısım olabilir. Bunu yine geleneksel şekilde yazalım ve devam edelim.
1 528 + 634 ------ 1162
Biraz özet oldu, ama anlaşıldığından eminim. Reeborg'un dünyasında aşağıdaki gibi toplamalar yapacağız.
Önce basit bir problem olan 8+4 ile başlayalım.
Uyarı: Aşağıdaki alıştırma biraz zor olabilir.Dersin geri kalanını okuyun ve alıştırmayı yapıp yapmamaya, ya da biraz daha Python öğrenmeye (Python bilginizi biraz daha geliştirmeye) siz karar verin.
Bahsettiğimiz gibi, her bir bip kümesi bir basamağı temsil ederken toplama yapıldığında (10 tabanında) problem toplamın 9'dan büyük olmasıdır. Toplanan sayılara bağımlı kalmaksızın, bir şekilde bu sihirli sayı (10) takip edilmelidir. 10 tabanında (veya 16 tabanında) kapasitede bir dünya dosyası (adding_world.wld) yarattım. Bu dosyayı yükleyin, size toplama yapmayı sağlayan bir program yazmanıza yardım edeceğim.
Dosyayı yükledikten sonra durum çubuğuna bakarsanız Reeborg'un 8 tane bip taşıdığını göreceksiniz. Reeborg'un aşağıdaki şekildeki gibi 8 tane bip'i 10. caddeye bırakmasını sağlayan bir program yazın. (programın çalışması bittikten sonra, ok tuşlarını kullanarak Reeborg'un yerini değiştirdim, böylece Reeborg'u en son bıraktığı bip'in üzerinden almış oldum ve aşağıdaki görüntü oluştu)
Şimdi, daha ileriye gitmeden, programınızı kaydedin.
Dünya dosyasını tekrar yükleyin (Böylece Reeborg başlangıç pozisyonunda [1.cadde
ile 1. sokağın kesişiminde] olsun ve boş bir dünyası olsun) ve aşağıdaki şekilde
olduğu gibi sağ alt köşeye bipleri yerleştirin. (Reeborg hala başlangıç
pozisyonunda).
Reeborg'a aşağıdakileri yaptırın:
Şimdi 10. caddenin yukarısında iki tane bip var, 10. caddede ise ekstra bir bip var. Yapmanız gereken ise:
Reeborg'un kuzeye doğru
gitmesini, (kalan iki bip'i almasını)
ve aşağıdaki
şekilde
olduğu
gibi 13. caddeye gelmesini sağlayın:
Reeborg'u geriye döndürün ve 10. caddeden bir bip almasını ve dokuzuncu caddeye gelmesini sağlayın, bunu yaptırdığınızda Reeborg’un cebinde 3 tane bip'i olmalı.
Reeborg'un bu bipleri aşağıdaki duvara ulaşıncaya kadar taşımasını sağlayın;
Reeborg'un taşıdığı 3 bip' buraya bırakmasını, daha sonra bunlardan birisini almasını(elde var bir), doğuya gitmesini ve taşıdığı bip'i buraya bırakmasını sağlayın.
Geriye kalan tek şey işlemin sonucunun gözükebilmesi için Reeborg'u kenara çekmektir.
Bu beş adımı yerine getirmek için oldukça fazla kod yazmanız gerekecek ve bunu doğru olarak yapmakta biraz zorlanabilirsiniz. Ancak sistemli olarak ilerlerseniz başaracağınızdan eminim. Deneyin!
Sonunda 8+4 işlemini hesaplayabilen bir program yazdınız. Aynı programı 3+5 işleminde deneyin. Çalıştı mı? Çalışmamışdır, çünkü bu işlemde elde yok. Buna bir çare bulabilir misiniz? Belkide yalnızca şu ana dek öğrendiğiniz komutları kullanıyorsunuzdur... Benim çözümümde henüz görmediğiniz break komutunu kullanmam gerekti.
Eğer 10 tabanı dışındaki tabanlarda da toplama yapmayı biliyorsanız, programınızda gerekli değişiklikleri yaparak farklı tabanlarda da toplamı işlemi yaptırabilirsiniz.
Şimdiye kadar gördüğümüz Python komutları: def, elif, else, if, not, pass, while. Reeborg'a iki sayıyı toplatabilen oldukça komplike bir program yazarak bu bölümü bitirdik. Şimdi Reeborg'u bırakacağız ve gerçek Python'da iki sayının nasıl toplanabileceğini göreceğiz. Üzülmeyin, arada sırada Reeborg'un dünyasına geri döneceğiz ve artan Python bilgimizin Reeborg'a nasıl yardım ettiğini göreceğiz.