37. Hafta: Tüm Yapıları Birleştirmek – Yılan Oyunu

Bu haftaya kadar Scratch'te dört temel yapıyı öğrendik: doğrusal yapı, karar yapısı, döngü yapısı ve değişkenler. Artık yeni bir şey öğrenme zamanı değil — öğrendiklerimizi tek bir özgün projede birleştirme zamanı!

📌 Kazanım:
BT.6.5.2.15. Tüm programlama yapılarını içeren özgün bir proje oluşturur.
⏱ Süre: 2 Ders Saati

🎯 Bu Konuda Neler Öğreneceğiz?

  • Doğrusal yapı, karar yapısı, döngü yapısı ve değişkenleri bir arada nasıl kullanırız?
  • Bir oyun projesini sıfırdan nasıl tasarlar ve geliştiririz?
  • Yılan Oyunu’nun algoritmasını nasıl oluştururuz?
  • Programımızı nasıl test eder, eksikliklerini nasıl tamamlarız?

🐍 Neden Yılan Oyunu?

Yılan Oyunu, tüm programlama yapılarını doğal olarak barındırır. Hangi yapının nerede kullanıldığına bakalım:

Programlama YapısıYılan Oyunundaki Karşılığı
✅ Doğrusal YapıOyun başladığında sahneyi hazırla, değişkenleri sıfırla, yılanı başlangıç noktasına yerleştir
✅ DeğişkenSkor sayacı (her yenilen elmada artar), yılan hızı
✅ Karar YapısıDuvara çarptı mı? Elmaya ulaştı mı? Hangi tuşa basıldı?
✅ Döngü YapısıOyun bitmediği sürece yılan hareket etmeye devam eder

💡 Özgün Proje Ne Demek?Kazanımda geçen “özgün proje”, sıfırdan tasarlayıp kodladığın, farklı yapıları bir araya getirdiğin kendi projen demektir. Yılan Oyunu bunun için harika bir örnek!


📚 Bu Haftanın Kod Blokları

Bu projede yeni blok yok — tüm blokları zaten biliyorsunuz! Sadece yeni kombinasyonlar kullanıyoruz:

BlokKategoriKullanım Amacı
🟡 yeşil bayrak tıklandığındaOlaylarOyunu başlatır (doğrusal yapı başlangıcı)
🟠 skor’u 0 yapDeğişkenlerSkoru sıfırlar
🔵 …’e git (x: y:)HareketYılanı başlangıç noktasına taşır
🔵 …yönüne dönHareketYılanın yönünü değiştirir
🔵 … adım gitHareketYılanı hareket ettirir
🟠 eğer … iseKontrolDuvara ya da elmaya çarpma kontrolü (karar)
🟢 kenara değiyor mu?AlgılamaDuvar tespiti
🟢 [nesne]’ye değiyor mu?AlgılamaElma tespiti
🔶 …olana kadar tekrarlaKontrolAna oyun döngüsü
🟠 değişkeni 1 artırDeğişkenlerHer elmada skoru günceller
🟢 [tuş] tuşuna basıldı mı?AlgılamaYön tuşu kontrolü
🟣 …de / saniyeGörünümOyun sonu mesajı

🎮 Etkinlik – 🐍 Yılan Oyunu

Sağ / Sol / Yukarı / Aşağı ok tuşlarıyla yılanı yönlendir, elmaları ye, duvara çarpmadan hayatta kal!

🧠 Oyunun Algoritması

Kodlamaya başlamadan önce oyunun mantığını adım adım yazalım:

#Ne Yapılır?Hangi Yapı?
1Sahneyi hazırla, skoru 0 yap, yılanı ortaya yerleştirDoğrusal
2Yılan hareket etmeye başlasınDöngü başlar
3Hangi tuşa basıldı? → Yılanın yönünü güncelleKarar
4Yılan ilerlesin (adım at)Doğrusal
5Duvara çarptı mı? → Evet ise: “Oyun Bitti!” de, döngüyü durdurKarar
6Elmaya değdi mi? → Evet ise: skoru artır, elmayı yeni konuma taşıKarar + Değişken
7Oyun devam ediyor mu? → Evet ise Adım 3’e dönDöngü döner

🛠️ Adım Adım Yapım

Adım 1 – Sahneyi ve Kuklaları Hazırla

Scratch’i aç (scratch.mit.edu). Varsayılan kedi kuklamasını sil.

🖼️ Sahne (Backdrop):
“Backdrops” sekmesinden “Paint” ile düz siyah arka plan çiz. Sahnenin dört kenarını beyaz ya da kırmızı ile boyayarak duvar efekti oluştur.

🐍 Kukla 1 – Yılan Kafası:
Yeni kukla ekle → “Paint” ile küçük yeşil kare ya da daire çiz. Boyutunu % 25–30 yap. Adını Yilan koy.

🍎 Kukla 2 – Elma:
Yeni kukla ekle → Kütüphaneden “Apple” veya kendi çizdiğin kırmızı daire. Boyutunu % 20–25 yap. Adını Elma koy.

Adım 2 – Değişkenleri Oluştur

Değişkenler menüsüne gir → “Değişken oluştur” düğmesine tıkla ve şu iki değişkeni oluştur:

🟠 skor — Kaç elma yenildiğini sayar
🟠 hiz — Yılanın hareket hızını belirler (başlangıç değeri: 0.3 saniye)

Her iki değişkeni sahne üzerinde görünür hale getir.

Adım 3 – Elmayı Kodla (Rastgele Konum)

Elma kuklamasını seç ve şu kodu yaz:

🟡 yeşil bayrak tıklandığında
   sonsuza kadar tekrarla
      rastgele konuma git   ← -200 ile 200 arası rastgele x ve y
      Yilan'a değene kadar bekle
   (Yılan elmaya ulaşınca elma yeni yere ışınlanır)

Adım 4 – Yılanı Kodla: Başlangıç (Doğrusal Yapı)

Yılan kuklamasını seç ve şu kodu yaz:

🟡 yeşil bayrak tıklandığında
   x:0, y:0 konumuna git      ← Sahne ortasına yerleş
   90 yönüne dön              ← Sağa bak (başlangıç yönü)
   skor'u 0 yap               ← Skoru sıfırla
   hiz'i 0.3 yap              ← Hızı ayarla
   [Adım 5 buraya devam edecek]

💡 Doğrusal YapıBu kısımda her zaman aynı şeyler sırayla olur: oyun başlayınca yılan ortaya gelir, skor sıfırlanır, hız ayarlanır. Hiçbir dallanma yoktur.

Adım 5 – Oyun Döngüsü (Döngü Yapısı)

Başlangıç kodunun devamına şunu ekle:

kenara değiyor mu? olana kadar tekrarla   ← ANA DÖNGÜ
   [Adım 6 ve 7 buraya girecek]
   hiz saniye bekle              ← Hareket hızını kontrol eder
   10 adım git                   ← Yılan ilerler

"Oyun Bitti! Skorun: " + skor de, 3 saniye   ← Döngü bitince

⚠️ Dikkat“…olana kadar tekrarla” bloğu, koşul gerçekleşince durur. Yılan duvara değene kadar döngü devam eder, değince oyun biter.

Adım 6 – Yön Kontrolü (Karar Yapısı)

Döngünün içine, hiz saniye bekle satırından önce, şu dört karar bloğunu ekle:

eğer [sağ ok tuşuna basıldı mı?]  ise  →  90 yönüne dön
eğer [sol ok tuşuna basıldı mı?]  ise  →  -90 yönüne dön
eğer [yukarı ok tuşuna basıldı mı?] ise  →  0 yönüne dön
eğer [aşağı ok tuşuna basıldı mı?]  ise  →  180 yönüne dön

📌 Önemli AyarYılan kuklamasının dönüş stilini “tüm yönlere dön” olarak ayarla. Kukla bilgi panelinde (mavi i ikonu) bu ayarı değiştirebilirsin.

Adım 7 – Elma Yeme: Değişken + Karar

Döngü içinde, yön bloklarının hemen altına şunu ekle:

eğer [Elma'ya değiyor mu?] ise
   skor'u 1 artır        ← Değişken güncellenir
   hiz'i 0.05 azalt      ← Oyun zorlaşır (isteğe bağlı)

Her elma yenildiğinde skor artar. Karar yapısı (elmaya değdi mi?) ve değişken (skoru artır) bir arada kullanılıyor.


💻 Yılan Kuklamasının Tam Kodu

🟡 yeşil bayrak tıklandığında
   x:0, y:0 konumuna git
   90 yönüne dön
   skor'u 0 yap
   hiz'i 0.3 yap
   ┌─ kenara değiyor mu? olana kadar tekrarla ───────────────────── ┐
   │  eğer [sağ ok]    ise →  90 yönüne dön                          │
   │  eğer [sol ok]    ise → -90 yönüne dön                          │
   │  eğer [yukarı ok] ise →   0 yönüne dön                          │
   │  eğer [aşağı ok]  ise → 180 yönüne dön                          │
   │  eğer [Elma'ya değiyor mu?] ise                                 │
   │     skor'u 1 artır                                               │
   │     hiz'i 0.05 azalt                                             │
   │  hiz saniye bekle                                                │
   │  10 adım git                                                     │
   └──────────────────────────────────────────────────────────────────┘
   "Oyun Bitti! Skorun: " + skor de, 3 saniye

🔍 Test Et ve Hata Ayıkla

Kodunu bitirince şu kontrolleri sırasıyla yap:

Test DurumuBeklenen Sonuç
Yeşil bayrak tıklaYılan ortada, sağa bakarak başlamalı. Skor 0 görünmeli.
Sağ ok tuşuna basYılan sağa doğru hareket etmeli
Sol ok tuşuna basYılan sola dönmeli
Yukarı / Aşağı okYılan yukarı / aşağı dönmeli
Yılanı duvara götür“Oyun Bitti!” mesajı ve skor gösterilmeli
Yılanı elmaya götürSkor 1 artmalı, elma yeni konuma ışınlanmalı
Birkaç elma yeYılanın biraz hızlandığı fark edilmeli

🐛 Sık Yapılan Hatalar ve Çözümleri

❌ Yılan yön tuşuna tepki vermiyor?
→ Tuş adlarını kontrol et: Türkçe Scratch’te “sağ ok”, “sol ok” şeklinde yazmalısın.

❌ Yılan duvara çarpmıyor, sahne dışına çıkıyor?
→ “kenara değiyor mu?” bloğunun döngü koşulunda olduğundan emin ol.

❌ Elma hep aynı yerde beliriyor?
→ Elma kodundaki x ve y değerlerinde rastgele sayı bloğu kullanıldığından emin ol.

❌ Skor artmıyor?
→ Değişken adını kontrol et: “skor” olarak oluşturduysan kodda da tam “skor” yazmalı.


⭐ Projeyi Geliştirme Fikirleri

Erken bitirirsen veya evde çalışmak istersen projeye şunları ekleyebilirsin:

🚀 Ekstra Görevler

  • Gövde klon: Her elma yenilince yeni bir klon oluşsun → Kontrol → “klonla” bloğu
  • Seviye sistemi: Her 5 elmada “Seviye 2!” gibi mesaj göster → Değişken + Karar
  • Rekor skoru: “rekor” adlı değişkende en yüksek skoru sakla, yenilince güncelle
  • Çoklu elma: Sahneye 2 Elma kuklası ekle — hem kırmızı hem sarı
  • Ses efekti: Elma yenilince Ses menüsünden çıtırtı sesi çal

📝 Dersin Özeti — Hangi Yapıyı Nerede Kullandık?

  • Doğrusal Yapı → Oyun başlangıcı: skor sıfırlama, başlangıç konumu, yön ayarı
  • Değişken → skor ve hiz: her elmada güncellenir, ekranda gösterilir
  • Karar Yapısı → Tuş kontrolü, elma tespiti — koşula göre farklı yol izlenir
  • Döngü Yapısı → Ana oyun döngüsü: duvara çarpana kadar devam eder

Bir Cevap Yazın

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