📌 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şken | Skor 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:
| Blok | Kategori | Kullanım Amacı |
|---|---|---|
| 🟡 yeşil bayrak tıklandığında | Olaylar | Oyunu başlatır (doğrusal yapı başlangıcı) |
| 🟠 skor’u 0 yap | Değişkenler | Skoru sıfırlar |
| 🔵 …’e git (x: y:) | Hareket | Yılanı başlangıç noktasına taşır |
| 🔵 …yönüne dön | Hareket | Yılanın yönünü değiştirir |
| 🔵 … adım git | Hareket | Yılanı hareket ettirir |
| 🟠 eğer … ise | Kontrol | Duvara ya da elmaya çarpma kontrolü (karar) |
| 🟢 kenara değiyor mu? | Algılama | Duvar tespiti |
| 🟢 [nesne]’ye değiyor mu? | Algılama | Elma tespiti |
| 🔶 …olana kadar tekrarla | Kontrol | Ana oyun döngüsü |
| 🟠 değişkeni 1 artır | Değişkenler | Her elmada skoru günceller |
| 🟢 [tuş] tuşuna basıldı mı? | Algılama | Yön tuşu kontrolü |
| 🟣 …de / saniye | Görünüm | Oyun 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ı? |
|---|---|---|
| 1 | Sahneyi hazırla, skoru 0 yap, yılanı ortaya yerleştir | Doğrusal |
| 2 | Yılan hareket etmeye başlasın | Döngü başlar |
| 3 | Hangi tuşa basıldı? → Yılanın yönünü güncelle | Karar |
| 4 | Yılan ilerlesin (adım at) | Doğrusal |
| 5 | Duvara çarptı mı? → Evet ise: “Oyun Bitti!” de, döngüyü durdur | Karar |
| 6 | Elmaya değdi mi? → Evet ise: skoru artır, elmayı yeni konuma taşı | Karar + Değişken |
| 7 | Oyun devam ediyor mu? → Evet ise Adım 3’e dön | Dö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 Durumu | Beklenen Sonuç |
|---|---|
| Yeşil bayrak tıkla | Yılan ortada, sağa bakarak başlamalı. Skor 0 görünmeli. |
| Sağ ok tuşuna bas | Yılan sağa doğru hareket etmeli |
| Sol ok tuşuna bas | Yılan sola dönmeli |
| Yukarı / Aşağı ok | Yılan yukarı / aşağı dönmeli |
| Yılanı duvara götür | “Oyun Bitti!” mesajı ve skor gösterilmeli |
| Yılanı elmaya götür | Skor 1 artmalı, elma yeni konuma ışınlanmalı |
| Birkaç elma ye | Yı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

