Bir cümlelik özet
Döngü, aynı blokları tekrar tekrar yerleştirmeden Scratch'te bir kuklaya bir işi birçok kez yaptırmamızı sağlayan yapıdır.
Neden önemli?
Bir kuklanın kare çizmesini istediğini düşün. Kare dört kenardan oluşur, yani "ilerle" ve "dön" bloklarını dört kez alt alta yerleştirmen gerekir. Peki bir yıldız ya da otuz kenarlı bir şekil çizmek istersen? Aynı blokları otuz kez sürüklemek hem çok yorucu hem de hata yapmaya çok açıktır.
Döngü tam burada işe yarar. "Şu blokları belli bir sayıda tekrarla" diyerek uzun bir işi tek bir küçük yapıyla anlatırız. Kod hem kısalır hem de bir yeri değiştirmek istediğimizde tek bir sayıyı düzeltmek yeterli olur.
Algoritma modülünde tekrar fikrini öğrenmiştik: aynı adımları döngü içinde toplamak. Scratch bu fikri turuncu Kontrol (Control) kategorisindeki tekrar bloklarıyla görünür hale getirir. Bir önceki derste öğrendiğimiz koşullar da burada karşımıza çıkar; çünkü bazı döngülerin ne zaman duracağına bir koşul karar verir.
Scratch'te üç tekrar bloğu
Scratch'te döngüler turuncu Kontrol (Control) kategorisinde bulunur. Üç temel tekrar bloğu vardır. Her birini önce tanıyalım, sonra örnekle görelim.
1. "sürekli tekrarla" (forever)
Bu blok, içindeki blokları hiç durmadan tekrar eder. Bir başlangıcı vardır ama kendiliğinden biten bir sonu yoktur; kukla yeşil bayrak durdurulana kadar çalışır. Kesintisiz hareket, sürekli algılama veya bir animasyon için kullanılır.
Örnek: Kuklanın ekranda hiç durmadan gidip kenardan sekmesi.
yeşil bayrağa tıklandığında
sürekli tekrarla
10 adım git
eğer <kenara değiyor?> ise
180 derece dön
Burada Hareket (Motion) kategorisindeki "10 adım git" ile Algılama (Sensing) kategorisindeki "kenara değiyor?" bloğunu birlikte kullandık. Kukla sürekli ilerler, kenara değince geri döner ve bu sonsuza kadar sürer.
2. "… kez tekrarla" (repeat)
Kaç kez tekrar edeceğimizi baştan biliyorsak bu bloğu kullanırız. Blokların içindeki sayı, tekrar sayısını gösterir. Belirtilen sayı kadar döndükten sonra döngü kendiliğinden durur.
Örnek: Kuklanın 4 kez ilerleyip dönerek kare çizmesi.
yeşil bayrağa tıklandığında
kalemi bas
4 kez tekrarla
100 adım git
90 derece sağ dön
kalemi kaldır
Burada Kalem (Pen) kategorisindeki "kalemi bas" bloğu kuklanın arkasında iz bırakmasını sağlar. Kukla 4 kez ilerleyip 90 derece döner, böylece ekranda bir kare belirir.
3. "… olana kadar tekrarla" (repeat until)
Bazen kaç kez tekrar edeceğimizi baştan bilmeyiz; ama döngünün ne zaman durması gerektiğini bir koşulla anlatabiliriz. Bu blok, içindeki koşul doğru olana kadar çalışır. Koşul doğru olduğu anda döngü durur.
Örnek: Kukla, fareye değene kadar ona doğru ilerlesin.
yeşil bayrağa tıklandığında
<fare-imlecine değiyor?> olana kadar tekrarla
fare-imlecine doğru dön
5 adım git
Burada Algılama (Sensing) kategorisindeki "fare-imlecine değiyor?" bloğu koşuldur. Kukla fareye ulaşana kadar ona doğru ilerler, ulaştığı anda durur. Kaç adım atacağını önceden bilmemize gerek yoktur.
Kalem ile çokgen çizmek
Döngülerin en güzel örneklerinden biri çokgen çizmektir. Kalem (Pen) kategorisi, kuklanın hareket ederken arkasında iz bırakmasını sağlar. Bir döngüyle kuklayı kenar boyunca ilerletir, her köşede döndürürüz.
Kuralı bulmak: dönüş açısı
Bir çokgenin her köşesinde kaç derece dönmemiz gerektiğini bulmak kolaydır: 360'ı kenar sayısına böl. Kuklanın dönme yönü bir tam tur olan 360 dereceyi tamamlamalıdır.
- Üçgen: 3 kenar → 360 ÷ 3 = 120 derece
- Kare: 4 kenar → 360 ÷ 4 = 90 derece
- Beşgen: 5 kenar → 360 ÷ 5 = 72 derece
- Altıgen: 6 kenar → 360 ÷ 6 = 60 derece
Örnek: Altıgen çizen kukla
yeşil bayrağa tıklandığında
kalem rengini mavi yap
kalemi bas
6 kez tekrarla
80 adım git
60 derece sağ dön
kalemi kaldır
Bu programda kukla altı kez ilerler ve her köşede 60 derece döner. Sonuçta düzgün bir altıgen çıkar. Tekrar sayısını ve dönüş açısını yukarıdaki kurala göre değiştirirsen istediğin çokgeni çizebilirsin. Bir döngüyü değiştirmek, sadece bir sayıyı değiştirmek kadar kolaydır.
Mini uygulama
Bir kuklaya kalemle sekizgen (8 kenarlı şekil) çizdiren bir program yaz.
- "… kez tekrarla" bloğuna hangi sayıyı yazmalısın?
- Her köşede kaç derece dönmelisin? (İpucu: 360'ı kenar sayısına böl.)
- Blok dizini önce kâğıda çiz, sonra Scratch'te dene. "kalemi bas" bloğunu döngüden önce koymayı unutma.
Bittiğinde tekrar sayısını ve açıyı bir üçgen çizecek şekilde değiştir. Aynı program hangi iki sayıyla üçgen çizer?
Uygulama laboratuvarı: Döngüler
Döngüler konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Scratch'te üç tekrar bloğu ile 2. "… kez tekrarla" (repeat) arasındaki ilişkiyi kullanarak çalışan bir Scratch sahnesi, blok düzeni ve test listesi hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.
Görev senaryosu
Şu senaryoyu ele al: basketbol atışlarını sayan ve seviye yükselten sahne. Dersin ana hedefi “Sürekli, N kez ve koşullu tekrar bloklarıyla işleri Scratch'te otomatikleştir” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.
Başarı ölçütleri
- Yeşil bayrakla başlangıç durumu doğru kuruluyor mu?
- Olaylar yalnız gerektiğinde mi çalışıyor?
- Değişkenler anlaşılır adlarla mı kullanıldı?
- Klon veya döngü sayısı kontrol altında mı?
- Oyun yeniden başlatıldığında önceki durum temizleniyor mu?
“Döngüler” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın basketbol atışlarını sayan ve seviye yükselten sahne senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Scratch'te üç tekrar bloğu ve 2. "… kez tekrarla" (repeat) ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
"kalemi bas" bloğunu unutmak
Kukla döngüyü çalıştırır, ekranda hareket eder ama hiçbir iz kalmaz. Bunun nedeni genellikle Kalem (Pen) kategorisindeki "kalemi bas" bloğunu döngüden önce koymayı unutmaktır. İz istiyorsan çizim başlamadan önce kalemi basmalısın.
Yanlış dönüş açısı
"… kez tekrarla" sayısı doğru ama şekil kapanmıyorsa, çoğu zaman dönüş açısı yanlıştır. Şekil kapanmıyorsa "360'ı kenar sayısına böl" kuralını yeniden hesapla. Örneğin kare için 90 yerine 60 yazarsan şekil kapanmaz.
"sürekli tekrarla" içinde bekleme koymamak
"sürekli tekrarla" bloğunun içine sadece bir renk veya kostüm değişimi koyarsan, değişim o kadar hızlı olur ki gözün fark edemez. Animasyonlarda genellikle Kontrol (Control) kategorisindeki "1 saniye bekle" gibi bir bloğa ihtiyaç duyarsın.
Bir eksik ya da bir fazla tekrar
Çok karşılaşılan bir hata, döngünün bir kez eksik ya da bir kez fazla dönmesidir. Kare çizerken 4 yerine 3 yazarsan bir kenar eksik kalır. Emin olmak için küçük bir sayıyla dene ve kaç kenar çizildiğini gözünle say.
Güvenlik notu
Bu ders tamamen ekran başında yapılır; elektronik ya da alet kullanılmaz. Yine de "sürekli tekrarla" bloğu programı hiç durmadan çalıştırdığı için ekran başında uzun süre kalmak kolaydır. Her 20–30 dakikada bir mola ver, ekrandan uzağa bak ve gözlerini dinlendir. Scratch'te başkalarının projelerini incelerken veya yorum yazarken kişisel bilgilerini (adres, telefon, okul adı) paylaşma ve bir yetişkinin haberi olsun.
Ders özeti
- Döngü, aynı blokları tekrar tekrar yerleştirmeden bir işi çok kez yaptırmamızı sağlar.
- "sürekli tekrarla" bloğu içindeki blokları durmadan tekrar eder; kesintisiz hareket ve algılama için kullanılır.
- "… kez tekrarla" bloğu, tekrar sayısını baştan bildiğimizde kullanılır.
- "… olana kadar tekrarla" bloğu, bir koşul doğru olana kadar çalışır ve durma koşuluna bağlıdır.
- Kalem ile çokgen çizerken dönüş açısı, 360'ın kenar sayısına bölünmesiyle bulunur.
Kontrol soruları
- "sürekli tekrarla" ile "… kez tekrarla" blokları arasındaki temel fark nedir?
- Bir kuklanın kalemle beşgen çizmesi için döngüyü kaç kez tekrarlaman ve her köşede kaç derece dönmen gerekir?
- Bir kuklanın kalemi hareket ederken iz bıraksın istiyorsun ama hiçbir çizgi çıkmıyor. En olası neden nedir?
- "… olana kadar tekrarla" bloğunu hangi durumda kullanmak, "… kez tekrarla" bloğuna göre daha uygundur?
- Aşağıdaki blok dizisi ekranda nasıl bir şekil çizer?
kalemi bas
3 kez tekrarla
100 adım git
120 derece sağ dön
kalemi kaldır
Cevaplar
- "sürekli tekrarla" içindeki bloklar kendiliğinden bitmeden, program durdurulana kadar tekrar eder. "… kez tekrarla" ise yazdığımız sayı kadar döndükten sonra kendiliğinden durur.
- 5 kez tekrarlamak ve her köşede 72 derece (360 ÷ 5) dönmek gerekir.
- En olası neden, döngüden önce Kalem (Pen) kategorisindeki "kalemi bas" bloğunu koymayı unutmaktır. Kalem basılı değilse kukla hareket eder ama iz bırakmaz.
- Kaç kez tekrar edeceğimizi baştan bilmediğimiz, ama döngünün ne zaman durması gerektiğini bir koşulla anlatabildiğimiz durumlarda. Örneğin "bir kenara değene kadar ilerle" gibi görevlerde.
- Bir üçgen çizer. Kukla üç kez ilerler ve her köşede 120 derece (360 ÷ 3) döner.
Kaynak ve doğrulama notu
“Döngüler” dersi için doğrulama odağı Scratch'te üç tekrar bloğu ile 2. "… kez tekrarla" (repeat) arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Blok adları Scratch’in güncel temel kategorileriyle uyumlu tutulmuştur. Proje davranışı; başlangıç, normal oyun, hata ve yeniden başlatma durumlarında ayrı ayrı denenmelidir.
Sonraki ders
Değişkenler ve Listeler