Kısa cevap: Scratch'te labirent oyunu üç parçadan oluşur. Önce dekora tek renkli duvarlar ve farklı renkte bir hedef çizilir. Sonra top kuklası "sürekli tekrarla" içinde ok tuşlarıyla hareket ettirilir. Son olarak "rengine değiyor mu?" bloğuyla duvara değince başa dönmesi, hedefe değince kazanması sağlanır. Aşağıdaki kodlar ve indirilebilir proje dosyası Scratch'in kendi motorunda denendi. Duvara çarpan top başa dönüyor, labirenti bitiren oyuncu süresini tam saniye olarak görüyor.
Bu oyun ortaokulda blok tabanlı kodlamaya giriş için iyi bir ilk proje. Tek projede koordinat, döngü, koşul ve algılama bir araya geliyor ve öğrenci hatayı ekranda hemen görüyor. Blok tabanlı kodlamanın derslerdeki yeri için Blok tabanlı kodlama nedir? yazımıza bakabilirsiniz.
Başlamadan önce
- Scratch ücretsiz. Scratch'in kendi SSS sayfasına göre okulda ya da evde kullanmak için lisans gerekmez.
- Hesap şart değil. Hesap açmadan da proje yapılabiliyor. Projeyi Scratch sitesine kaydetmek ve paylaşmak için hesap gerekiyor. Hesap açmak istemiyorsanız Dosya menüsündeki Bilgisayarına kaydet ile projeyi dosya olarak indirebilirsiniz.
- İnternet yoksa: Scratch uygulaması bilgisayara indirilip çevrim dışı kullanılabiliyor.
- Süre: Sınıfta iki ders saati yeterli. Birinci derste dekor ve hareket, ikinci derste duvar, hedef ve süre yapılır.
- Eksi sayı ve koordinat: Bu oyunda konumlar x ve y sayılarıyla, sola ve aşağıya gidiş eksi sayılarla yazılıyor. Matematik programında tam sayılar 7. sınıfta, dik koordinat sistemi 8. sınıfta geliyor. 5-6. sınıf öğrencisi bunları Scratch'te ilk kez görecek. Sorun değil, ama sayı olarak değil bir yön kuralı olarak anlatın: x sağ-sol, y yukarı-aşağı. Sağa ve yukarıya artı, sola ve aşağıya eksi. Eksi işaretini "ters yön" diye okuyun.
1. Labirenti dekora çizin

Sahneyi seçin, Dekorlar sekmesine geçin ve yeni bir dekor çizin. Dikdörtgen aracını dolgu modunda kullanarak duvarları çizin.
Burada iki kural var:
- Bütün duvarlar tek renk olsun. Kod duvarı rengiyle tanıyacak. Bir duvar başka bir mavi tonundaysa top o duvardan geçer.
- Hedef ve top duvardan çok farklı renkte olsun, birbirlerinden de. Örnekte duvarlar mavi, hedef yeşil, top turuncu. Top da yeşil olursa oyun açılır açılmaz biter.
Labirentin dört kenarına da duvar çizin, yoksa top labirentten dışarı çıkıp dolaşarak hedefe gider. Topun rahat geçebileceği genişlikte koridorlar bırakın. Scratch sahnesi 480 x 360 boyutunda. Yatayda x -240 ile 240, dikeyde y -180 ile 180 arasında. Örnek labirentte top sol alttan (x: -200, y: -150) başlıyor ve yılan gibi kıvrılan koridorlardan sağ üstteki yeşil kutuya gidiyor.
Çizimle uğraşmak istemezseniz örnekteki dekoru labirent-dekor.svg olarak indirip Dekor Yükle ile ekleyebilirsiniz.
Top için Çizim ile küçük bir daire çizin ya da hazır bir kukla seçip Büyüklük değerini düşürün. Kukla büyük kalırsa koridorlara sığmaz.
2. Topu ok tuşlarıyla hareket ettirin

Bu kodu top kuklasına yazın. Her tekrarda dört tuşa ayrı ayrı bakılır. Basılı olan tuş yönünde top 3 adım kayar. Sağ ve yukarı artı, sol ve aşağı eksi yönlerdir. Öğrenciye -3'ü "3 adım ters yöne" diye okuyun.
Neden "tuşuna basılınca" kullanmıyoruz? "sağ ok tuşuna basılınca" bloğuyla da top hareket eder, ama klavye tuşu basılı tutunca önce bir kez tepki verir, kısa bir an bekler, sonra devam eder. Top kesik kesik gider. "sürekli tekrarla" içindeki "tuşuna basıldı mı?" sorusu ise tuşu her an kontrol ettiği için hareket akıcı olur. Bu farkı öğrencilere iki yöntemi de deneyerek göstermek iyi bir tartışma başlatır.
Adım değerini büyütürseniz top hızlanır. Ama adım çok büyürse (örneğin 30) top tek hamlede ince bir duvarın öbür yanına geçebilir ve çarpma algılanmaz. Önce 3 ile başlayın.
3. Duvara değince başa dönsün

Bu bloğu "sürekli tekrarla" içine, dört hareket bloğunun altına ekleyin. Renk kutusuna tıklayınca açılan pencerenin altında bir damlalık var. Damlalıkla sahnedeki duvara tıklayın. Rengi göz kararı seçmeyin. Scratch renkleri yalnızca çok küçük bir farkla eşleştiriyor, bu yüzden "hemen hemen aynı mavi" çoğu zaman tutmaz.
4. Hedefe değince kazansın ve süresini görsün

Bu bloğu da "sürekli tekrarla" içine ekleyin. Yeşil rengi yine damlalıkla hedeften seçin. "zamanlayıcı" Algılama bloklarında, "birleştir" ve "yuvarla" Operatörler bloklarında. Zamanlayıcı saniyeyi 10.494 gibi ondalıklı ve virgül yerine noktayla gösterir. 5. sınıf öğrencisi bunu on bin gibi okuyabilir, ondalık gösterim okulda daha sonra geliyor. "yuvarla" ekranda 10 yazdırır, sınıftaki süre karşılaştırması da tam sayıyla yapılır. Son olarak bayrak bloğunun hemen altına "zamanlayıcıyı sıfırla" bloğunu koyun.
Yeşil bayrağa tıklamak zamanlayıcıyı zaten sıfırlıyor. Bu blok yine de oyunu ileride başka bir yoldan yeniden başlattığınızda, örneğin bir sonraki seviyeye geçtiğinizde, sürenin sıfırdan sayılmasını garantiliyor.
Kodun tamamı

Hazır proje dosyası: labirent-oyunu.sb3. Scratch'te Dosya menüsünden bilgisayardan yükleme seçeneğiyle açabilirsiniz. Bu seçeneğin Türkçe çevirisi henüz yok, menüde İngilizce "Load from your computer" yazısını görebilirsiniz. Dosya, bu yazıdaki kodun aynısını ve örnek dekoru içeriyor. Biz bu dosyayı Scratch'in proje motorunda çalıştırıp iki durumu denedik. Sağ ok basılı tutulunca top ilk duvara çarpıp başa döndü. Labirent baştan sona yürününce top hiçbir duvara değmeden hedefe vardı, ekranda "Süren: 11" yazdı ve oyun durdu.
Öğrencilere hazır dosyayı başta vermeyin. Önce kendileri yapsın, takılan öğrenci kendi koduyla hazır dosyayı yan yana karşılaştırsın.
Sık yapılan hatalar
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| Ok tuşları hiçbir şey yapmıyor | Bayrağa tıklanmamış ya da bloklar "yeşil bayrağa tıklandığında" bloğundan kopmuş | Bayrağa tıklayın. Kopuk blokları sürükleyip bayrak bloğunun altına yapıştırın |
| Bayrak tıklı ama ok tuşları çalışmıyor | Klavye bir blok kutusunda kalmış. Bir sayı yazdıktan sonra ok tuşları o kutunun içinde kalıyor | Sahneye bir kez tıklayın, sonra ok tuşlarına basın |
| Top hiç kıpırdamıyor | Kod başka bir kuklaya yazılmış ya da bloklar "sürekli tekrarla"nın dışında kalmış | Kuklalar listesinde topu seçip koda bakın. Hareket blokları döngünün içinde olmalı |
| Top bir kez kayıp duruyor | "sürekli tekrarla" yerine tek seferlik bir blok kullanılmış | Dört "eğer" bloğunu "sürekli tekrarla"nın içine alın |
| Top duvarın içinden geçiyor | Duvar rengi göz kararı seçilmiş, duvarlar farklı tonlarda ya da "rengine değiyor mu?" yerine yanındaki "rengi ... rengine değiyor mu?" bloğu alınmış | Rengi damlalıkla duvardan seçin, tüm duvarları aynı renkle çizin, blok adını kontrol edin |
| Top bazı duvarlardan geçiyor, bazılarından geçmiyor | Adım değeri büyütülmüş, top ince duvarın üstünden atlıyor | Adımı 3'e indirin ya da ince duvarı kalınlaştırın |
| Top labirentin dışına çıkıyor | Dış kenarlara duvar çizilmemiş | Labirentin dört kenarına da duvar çizin |
| Hedefe varınca hiçbir şey olmuyor | Hedef rengi göz kararı seçilmiş ya da hedef kontrolü döngünün dışında | Rengi damlalıkla hedeften seçin, "eğer" bloğunu "sürekli tekrarla"nın içine alın |
| Top bayrağa basınca hemen başa dönüp titriyor | Başlangıç noktası bir duvarın üstünde | Başlangıç koordinatını koridorun ortasına alın |
| "Süren" yazısı hiç görünmüyor | "2 saniye boyunca ... de" yerine "... de" kullanılmış | "durdur tümü" konuşma balonunu da siler. Süreli "de" bloğunu kullanın ya da araya bekleme koyun |
| Süre bayrağa basmadan önce başlamış gibi | "zamanlayıcıyı sıfırla" yok ve oyun bayrak dışında bir yolla başlatılmış | Bayrak bloğunun altına "zamanlayıcıyı sıfırla" ekleyin |
| Top koridora sığmıyor | Kukla çok büyük | Kukla bilgisinden Büyüklük değerini düşürün |
Hata ayıklarken öğrenciye "top ne yapıyor, sen ne yapmasını istiyordun?" diye sorun. Belirtiyi kendi cümlesiyle söyleyen öğrenci sebebi çoğu zaman kendisi buluyor.
Oyunu geliştirme fikirleri
Temel oyunu bitiren öğrenciler için zorluk sırasıyla. İlk üçünde değişken yok, son ikisinde var:
- Duvara değince ses çalsın. Topun Sesler sekmesinden bir ses seçin. Duvar kontrolündeki "eğer" bloğunun içine "sesini başlat" bloğunu ekleyin.
- İkinci seviye yapın. İkinci bir labirent dekoru çizin. Hedefe değince "durdur tümü" yerine "sonraki dekor" ve başlangıç noktasına git blokları çalışsın. İkinci dekorda hedef rengini aynı yeşil tutun ki kod iki seviyede de çalışsın. Bayrak bloğunun altına da "(birinci labirent) dekoruna geç" ekleyin. Yoksa bayrağa yeniden basınca oyun ikinci seviyeden başlar.
- Hareketli engel koyun. Koridorlardan birinde gidip gelen ikinci bir kukla ekleyin. Engelin kendi kodunda "sürekli tekrarla" içinde "10 adım git" ve "kenara geldiyse sek" yeterli. Top bu kuklaya değince de başa dönsün. Burada "rengine değiyor mu?" yerine "(kukla adı) e değiyor mu?" bloğu kullanılır. İki algılama yönteminin farkını konuşmak için iyi bir fırsat.
- Can hakkı ekleyin. "can" adında bir değişken oluşturun ve oyun başında 3 yapın. Duvara her değişte "can i -1 kadar değiştir" çalışsın. Öğrenciye bunu "canı bir azalt" diye anlatın. Can 0 olunca oyun bitsin.
- Rekor tutun. "rekor" değişkeni ile en kısa süreyi saklayın. Dikkat: rekor 0 ile başlarsa hiçbir süre 0'dan küçük olmaz ve rekor hiç değişmez. Kural şöyle olsun: "rekor 0 ise ya da süre rekordan küçükse rekoru süre yap." Rekoru bayrak bloğunda sıfırlamayın, yoksa her oyunda silinir. Scratch değişkenin son değerini projeyle birlikte kaydeder, proje yeniden açıldığında rekor yerinde durur.
Sınıfta nasıl kullanılır?
Ders başlamadan bilgisayarlar açık ve Scratch yüklü olsun. Laboratuvarda açılış 5-10 dakika sürebiliyor ve bu süre plandan gider.
Birinci ders (40 dk):
- Öğrenciler labirentlerini önce kareli kâğıda çizsin. 12 x 9 karelik bir alan kullanın. Her kare Scratch'te 40 x 40 piksele denk gelir, koridorlar bir kare genişliğinde olur. Labirent en çok 8 duvardan oluşsun (10 dk).
- Dekoru Scratch'te çizip top kuklasını hazırlasınlar. 15. dakikada dekoru bitiremeyen öğrenciye hazır dekoru verin ki hareket koduna yetişsin (15 dk).
- Hareket kodunu yazıp topu labirentte gezdirsinler (12 dk).
- Projeyi kaydetsinler (3 dk).
İkinci ders (40 dk):
- Projelerini Dosya menüsünden bilgisayardan yükleme seçeneğiyle açsınlar (3 dk).
- Duvar ve hedef kontrolünü eklesinler. Damlalık ve "rengine değiyor mu?" ilk kez burada görülüyor, acele etmeyin (20 dk). Sık yapılan hatalar tablosunu ders başında yansıtın ya da çıktı olarak dağıtın, takılan öğrenci önce tabloya baksın.
- Sıra arkadaşları birbirinin labirentini oynasın. Süre yarışı için herkes aynı labirenti, örneğin hazır proje dosyasını oynasın ve süreler tahtaya yazılsın. Herkes kendi labirentinde yarışırsa süreler farklı zorluklardan gelir ve karşılaştırma adil olmaz. Erken bitiren geliştirme fikirlerine geçsin (17 dk).
Okul laboratuvarlarının çoğunda bilgisayar kapanınca masaüstü ve indirilen dosyalar silinir. İki ders arasında proje kaybolmasın diye birinci dersin sonunda Dosya menüsünden Bilgisayarına kaydet ile kaydettirin. Dosya adı öğrencinin adı olsun (örneğin labirent-ayse.sb3), yeri sizin gösterdiğiniz klasör ya da bir USB bellek.
Kâğıda çizme adımını atlamayın. Koordinat fikri ilk kez burada anlam kazanıyor. Öğrenci "topum sol altta, yani iki sayı da eksi tarafta" diye düşünmeye kâğıtta başlıyor. Bilgisayar sayısı yetersizse ikili çalışma da işe yarar. Biri sürer, öteki kodu okur, beş dakikada bir yer değiştirirler. Değişim zamanını siz söyleyin, yoksa çoğu ikili hiç değişmez.
Sıkça sorulan sorular
Scratch labirent oyunu hangi sınıfa uygun? Ortaokul 5-6. sınıf için iki ders saatlik bir proje. Koordinatı ve eksi sayıyı okulda henüz görmemiş olmaları sorun değil. x'i sağ-sol, y'yi yukarı-aşağı diye anlatın, eksiyi "ters yön" diye okuyun. Daha küçük yaşta dekoru hazır verip yalnızca hareket kodunu yazdırabilirsiniz.
Bu oyunu Scratch Jr ile yapabilir miyim? Bu yazıdaki kod Scratch 3 için. Scratch Jr'da renk algılama bloğu olmadığı için duvara çarpma başka yoldan kurulur.
Proje dosyası neden açılmıyor? Dosya Scratch 3 biçiminde (.sb3). Scratch'in eski 2.0 sürümünde açılmaz. Güncel Scratch sitesinde ya da Scratch uygulamasında Dosya menüsünden açın.
Öğrencilerin hesap açması gerekiyor mu? Hayır. Projeyi Bilgisayarına kaydet ile dosya olarak saklamak hesap gerektirmiyor. Hesap yalnızca projeyi Scratch sitesinde kaydetmek ve paylaşmak için gerekiyor.
Kaynaklar
- Scratch, Sıkça Sorulan Sorular (ücret ve lisans, çevrim dışı uygulama, hesap gereksinimi). scratch.mit.edu
- Scratch, uygulama indirme sayfası. scratch.mit.edu
- Scratch blok ve arayüz metinlerinin Türkçe çevirileri, scratch-l10n deposu. github.com
- Scratch arayüzü, blok listeleri ve yazı kutusundayken klavye tuşlarının oyuna gitmemesi (scratch-gui). github.com
- MEB, Türkiye Yüzyılı Maarif Modeli Ortaokul Matematik Dersi Öğretim Programı, 2026 (tam sayılar 7. sınıf MAT.7.1.1, dik koordinat sistemi 8. sınıf MAT.8.2.1). tymm.meb.gov.tr
- Scratch proje motoru, yeşil bayrağın zamanlayıcıyı sıfırlaması ve "durdur tümü"nün konuşma balonlarını silmesi (scratch-vm). github.com
- Scratch çizim motoru, renk algılamanın eşleştirme toleransı (scratch-render). github.com
- Blok görselleri scratchblocks ile çizildi (MIT lisansı). github.com
Kaynaklara erişim: 8 Ekim 2026.