Bloklarla Başlayan Kodlama
Bölüm
>
Seviye

Gelişmiş Listeler ve Veri Yapıları
İç içe listelerle Fonksiyonlar

Amaç

Alandaki ekinleri dikin ve sulayın, bunun için alanı dolaşan özel bir fonksiyon kullanın.

Alanda dikilmesi gereken birkaç ağaç var, tohum çantasını al ve ardından kuyuda suyunuzu doldurun. Alanı dolaşmak için iç içe liste yapısına (sözlük) sahip özel bir fonksiyon kullanın; tohumları dikin ve ardından sulayın.

Tohum çantasını al, bu çanta sana iç içe liste yapısında aşağıdaki ağaç tohumlarını sağlayacak: "orange : 3", "pear : 4", "apple : 3", "peach : 2". Kuyu yanındaki ışıklı X işaretine doğru yürü ve su toplamak için collect bloğunu "water" ile kullan.

Gerekli tüm malzemeleri topladıktan sonra, define function bloğunu kullanarak üç parametreli sow_field adında özel bir fonksiyon oluştur: tree, loops ve direction. Fonksiyonun içinde, 0'dan loops - 1'e kadar olan x değişkeni için bir for döngüsü bloğu kullan. Döngü içerisinde, direction'ın "right" ya da "left" olup olmadığını kontrol etmek için if bloklarını kullan ve yön doğrultusuna göre farklı hareket ve dikim düzenleri uygula.

İlk argüman olan tree, iç içe liste yapısında kullanılan anahtarın adıdır; bu anahtarlar "orange", "pear", "apple" ve "peach" şeklindedir. plant bloğunu, seeds değişkeni ve anahtar olarak tree parametresini kullanarak uygula.

Bir sonraki argüman loops olup, fonksiyonun kaç döngü yapacağını belirler. Bu değer, alandaki her tür tohum sayısına eşittir. Son argüman ise direction olup, "left" ve "right" değerlerini alır; fonksiyon döngüsü esnasında oyuncunun hangi yöne hareket edeceğini belirle.

Suyu topladıktan sonra haritanın en üst kısmına git ve call function bloğunu kullanarak sow_field fonksiyonunu "orange", 3 ve "right" argümanları ile çağır. Seviyeyi tamamlamak için tüm ağaç tohumları için bunu yap.

Kod Kitabı