37. Hafta: Projeyi Tamamlama ve Test Etme – Kaçan Top Oyunu

Bu hafta öğrendiğimiz tüm becerileri bir araya getiriyoruz: Yeni bir projeyi sıfırdan planlayacak, kodlayacak, test edecek ve hatalarını düzelteceğiz!

📌 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ç
1Yeşil bayrağa tıklaTop hareket etmeye başlar, puan 0 görünür✅ / ❌
2Ok tuşlarına basKarakter sağa sola hareket eder✅ / ❌
3Top karaktere değsin“Oyun Bitti!” mesajı çıkar, top durur✅ / ❌
4Karakter sahne kenarına gitsinKenardan çıkmamalı veya geri dönmeli✅ / ❌
5Oyunu yeniden başlatPuan 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:

  1. Hatayı tam olarak tanımla — “Çalışmıyor” değil, “Top kenara çarptığında geri dönmüyor” de.
  2. Hangi sprite’ta olduğuna bak — Doğru sprite’ın kodunu mu inceliyorsun?
  3. Blokları sırayla kontrol et — Eksik blok var mı? Yanlış kategoriden mi aldın?
  4. Bir değişiklik yap, tekrar test et — Her seferinde tek bir şeyi değiştir.
  5. 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

SpriteEğer (Olay)Yap (Eylem)
🔵 TopYeşil bayrak tıklandığındaOrtaya git, rastgele yöne dön, sürekli hareket et
🔵 TopKenara değdiğindeGeri sek (yön değiştir)
🔵 TopKaraktere değdiğinde“oyunBitti” mesajı yayınla
🧑 KarakterYeşil bayrak tıklandığındaOrtaya git, puan = 0
🧑 KarakterSağ ok tuşuna basıldığında15 adım sağa git
🧑 KarakterSol ok tuşuna basıldığında15 adım sola git
🧑 KarakterYukarı ok tuşuna basıldığında15 adım yukarı git
🧑 KarakterAşağı ok tuşuna basıldığında15 adım aşağı git
🧑 KarakterSü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

  1. scratch.mit.edu adresine git ve “Oluştur”‘a tıkla.
  2. Projeye isim ver: “Kaçan Top Oyunu”
  3. Varsayılan kediyi karakterin olarak kullan veya istediğin bir sprite seç.
  4. İkinci sprite olarak Ball (Top) ekle — Scratch kütüphanesinde mevcut.
  5. puan adında bir değişken oluştur.
  6. 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ç✅ / ❌
1Yeşil bayrağa tıklaTop rastgele yönde hareket eder, puan 0’dan başlar
2Top sahne kenarına ulaşsınTop geri sekip devam eder, durmaz
34 ok tuşuna sırayla basKarakter 4 yönde de hareket eder
43 saniye beklePuan en az 3 olmuştur
5Kasıtlı olarak topa değdir“Oyun Bitti! Puan: X” mesajı çıkar, her şey durur
6Oyunu yeniden başlatPuan 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:

  1. Test etmek; programı sistematik senaryolarla kontrol etmektir — rastgele denemek değil.
  2. Test senaryosu; “ne yapacağım → ne olmasını bekliyorum” şeklinde önceden hazırlanan listedir.
  3. Debugging; hatayı tanımlayıp, bulup, düzeltme sürecidir.
  4. Bir hatayı düzeltince tüm senaryoları yeniden test etmek gerekir.
  5. “Kaçan Top Oyunu”nda koşul, değişken, döngü, mesaj ve olay bloklarını hepsini bir arada kullandık.

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir