📌 Kazanım:
BTY.5.6.4. Blok tabanlı ortamda yazılım geliştirme sürecini yönetebilme
c) Blok tabanlı ortamda yazılımı oluşturur.
ç) Blok tabanlı ortamda oluşturulan yazılımı değerlendirir.
⏱ Süre: 2 Ders Saati
🎯 Bu Konuda Neler Öğreneceğiz?
- Bir projeyi sıfırdan planlayıp tamamlamayı öğreneceğiz.
- Test etmenin ne olduğunu ve neden önemli olduğunu anlayacağız.
- Test senaryosu yazarak programı sistematik biçimde kontrol etmeyi keşfedeceğiz.
- Hata ayıklama (debugging) tekniklerini öğreneceğiz.
- Tüm haftalarda öğrendiklerimizi “Kaçan Top Oyunu”nda birleştireceğiz.
🧪 Test Etmek Neden Önemlidir?
Bir program yazdıktan sonra “Çalışıyor mu?” diye bakmak yetmez. Gerçek bir test şu soruları sorar:
- Program her durumda doğru çalışıyor mu?
- Kullanıcı beklenmedik bir şey yaparsa ne oluyor?
- Hız, ses, puan gibi detaylar istediğim gibi mi?
- Bir hata var mı? Varsa nerede?
🚀 Gerçek hayat örneği: Uzaya roket göndermeden önce binlerce test yapılır. Telefonuna yüklediğin uygulama piyasaya çıkmadan önce yüzlerce kişi tarafından test edilir. Test etmeden yayınlanan bir program, hataları da beraberinde taşır!
📋 Test Senaryosu Nedir?
Test senaryosu; programı test etmek için önceden hazırlanan “ne yapacağım → ne olmasını bekliyorum” listesidir. Rastgele tıklamak değil, planlı test yapmaktır.
| # | Test Adımı | Beklenen Sonuç | Sonuç |
|---|---|---|---|
| 1 | Yeşil bayrağa tıkla | Top hareket etmeye başlar, puan 0 görünür | ✅ / ❌ |
| 2 | Ok tuşlarına bas | Karakter sağa sola hareket eder | ✅ / ❌ |
| 3 | Top karaktere değsin | “Oyun Bitti!” mesajı çıkar, top durur | ✅ / ❌ |
| 4 | Karakter sahne kenarına gitsin | Kenardan çıkmamalı veya geri dönmeli | ✅ / ❌ |
| 5 | Oyunu yeniden başlat | Puan sıfırlanır, top yeniden başlar | ✅ / ❌ |
🐛 Hata Ayıklama (Debugging) Nedir?
Test sırasında bir şeylerin yanlış gittiğini fark edersen, sorunu bulup düzeltmen gerekir. Bu işleme debugging (hata ayıklama) denir.
🕵️ Nereden geldi “bug” kelimesi? 1947 yılında bir bilgisayar mühendisi, bilgisayarının içinde gerçek bir böcek (bug) buldu — böcek devreye takılmış ve arızaya yol açmıştı. O günden bu yana yazılım hatalarına “bug”, hata düzeltmeye ise “debugging” dendi!
Debugging yaparken şu adımları izle:
- Hatayı tam olarak tanımla — “Çalışmıyor” değil, “Top kenara çarptığında geri dönmüyor” de.
- Hangi sprite’ta olduğuna bak — Doğru sprite’ın kodunu mu inceliyorsun?
- Blokları sırayla kontrol et — Eksik blok var mı? Yanlış kategoriden mi aldın?
- Bir değişiklik yap, tekrar test et — Her seferinde tek bir şeyi değiştir.
- Düzelttikten sonra tüm senaryoları yeniden test et — Bir hatayı düzeltirken başka hata çıkmış olabilir!
🎮 Etkinlik: “Kaçan Top Oyunu”
🕹️ Oyunun Kuralları
- Bir top sahnede zıplayarak rastgele hareket eder.
- Oyuncu karakteri ok tuşlarıyla kontrol eder.
- Her saniye hayatta kalan oyuncu 1 puan kazanır.
- Top karaktere değerse “Oyun Bitti!” mesajı çıkar ve her şey durur.
- Ne kadar uzun hayatta kalırsan o kadar yüksek puan!
📋 Tasarım: Olaylar Tablosu
| Sprite | Eğer (Olay) | Yap (Eylem) |
|---|---|---|
| 🔵 Top | Yeşil bayrak tıklandığında | Ortaya git, rastgele yöne dön, sürekli hareket et |
| 🔵 Top | Kenara değdiğinde | Geri sek (yön değiştir) |
| 🔵 Top | Karaktere değdiğinde | “oyunBitti” mesajı yayınla |
| 🧑 Karakter | Yeşil bayrak tıklandığında | Ortaya git, puan = 0 |
| 🧑 Karakter | Sağ ok tuşuna basıldığında | 15 adım sağa git |
| 🧑 Karakter | Sol ok tuşuna basıldığında | 15 adım sola git |
| 🧑 Karakter | Yukarı ok tuşuna basıldığında | 15 adım yukarı git |
| 🧑 Karakter | Aşağı ok tuşuna basıldığında | 15 adım aşağı git |
| 🧑 Karakter | Sürekli (her saniye) | puan 1 arttır |
| 🧑 Karakter | “oyunBitti” mesajı alındığında | “Oyun Bitti! Puan: [puan]” de, her şeyi durdur |
💻 Adım Adım Kodlama
🔧 Hazırlık
- scratch.mit.edu adresine git ve “Oluştur”‘a tıkla.
- Projeye isim ver: “Kaçan Top Oyunu”
- Varsayılan kediyi karakterin olarak kullan veya istediğin bir sprite seç.
- İkinci sprite olarak Ball (Top) ekle — Scratch kütüphanesinde mevcut.
- puan adında bir değişken oluştur.
- Arkaplan olarak istediğin bir saha veya boş alan seç.
🔵 1. Top Sprite’ının Kodları
Top sprite’ını seç ve şu iki yığını ekle:
Yığın 1 — Topun Hareketi:
🟡 Yeşil bayrak tıklandığında
🔵 x: [0] y: [0] konumuna git
← Ortadan başla
🔵 [1] ile [360] arası rastgele sayı dereceye dön
← Rastgele yöne bak
🟠 sürekli tekrar et
🔵 [8] adım git
🔵 kenara değince sek
🟠 eğer <[Sprite1]’e değiyor mu?> ise
🩵 [Boing] sesini çal
🟡 [oyunBitti] yayınla
🟠 her şeyi durdur
🧑 2. Karakter Sprite’ının Kodları
Karakter sprite’ını seç ve şu yığınları ekle:
Yığın 1 — Başlangıç ve Puan Sayacı:
🟡 Yeşil bayrak tıklandığında
🔵 x: [-150] y: [-100] konumuna git
← Köşeden başla
🟠 [puan] değişkenini [0] yap
🟠 sürekli tekrar et
🟠 [1] saniye bekle
🟠 [puan] değişkenini [1] arttır
Yığın 2, 3, 4, 5 — Ok Tuşu Kontrolleri:
🟡 [sağ ok] tuşuna basıldığında
🔵 x’i [15] değiştir
🟡 [sol ok] tuşuna basıldığında
🔵 x’i [-15] değiştir
🟡 [yukarı ok] tuşuna basıldığında
🔵 y’yi [15] değiştir
🟡 [aşağı ok] tuşuna basıldığında
🔵 y’yi [-15] değiştir
Yığın 6 — Oyun Sonu:
🟡 [oyunBitti] alındığında
🟣 [Oyun Bitti! Puan: ] + (puan) 3 saniye boyunca deyin
▶️ 3. Test Senaryolarını Uygula
Kodunu tamamladıktan sonra aşağıdaki test senaryolarını sırayla dene ve sonuçları işaretle:
| # | Test Adımı | Beklenen Sonuç | ✅ / ❌ |
|---|---|---|---|
| 1 | Yeşil bayrağa tıkla | Top rastgele yönde hareket eder, puan 0’dan başlar | |
| 2 | Top sahne kenarına ulaşsın | Top geri sekip devam eder, durmaz | |
| 3 | 4 ok tuşuna sırayla bas | Karakter 4 yönde de hareket eder | |
| 4 | 3 saniye bekle | Puan en az 3 olmuştur | |
| 5 | Kasıtlı olarak topa değdir | “Oyun Bitti! Puan: X” mesajı çıkar, her şey durur | |
| 6 | Oyunu yeniden başlat | Puan sıfırlanır, top yeniden hareket eder |
🐛 Sık Karşılaşılan Hatalar:
• Top duruyor, hareket etmiyor: “Sürekli tekrar et” döngüsünün içinde “adım git” bloğu var mı?
• Puan artmıyor: Puan yığınının ayrı bir “sürekli tekrar et” içinde olduğundan emin ol.
• “Oyun Bitti” çıkmıyor: Mesaj adını kontrol et — yayınlayan ve alan blokta aynı isim olmalı.
• Karakter sahne dışına çıkıyor: Hareket bloğunun ardına “kenara değince sek” ekleyebilirsin.
🌟 Oyunu Geliştir!
- ⚡ Topu zamanla hızlandır: Her 5 puanda adım sayısını 1 arttır.
- 🔴 İkinci bir top ekle — oyun zorlaşsın!
- 🏆 Puan 15’e ulaşınca “Tebrikler, Uzman Kaçakçı!” mesajı göster.
- 🎵 Oyun boyunca çalan bir arka plan müziği ekle.
- ⏱ Puan yerine süre sayacı koy: kaç saniye hayatta kaldın?
🔁 Özet
Bu derste yazılım geliştirme sürecinin son iki adımını tamamladık:
- Test etmek; programı sistematik senaryolarla kontrol etmektir — rastgele denemek değil.
- Test senaryosu; “ne yapacağım → ne olmasını bekliyorum” şeklinde önceden hazırlanan listedir.
- Debugging; hatayı tanımlayıp, bulup, düzeltme sürecidir.
- Bir hatayı düzeltince tüm senaryoları yeniden test etmek gerekir.
- “Kaçan Top Oyunu”nda koşul, değişken, döngü, mesaj ve olay bloklarını hepsini bir arada kullandık.

