Yılan Oyunu
Bilişim Teknolojileri ve Yazılım Dersi 2. dönem konuları ağırlıklı olarak kodlama üzerine hazırlanmıştır. Elimden geldiğince her haftaya bir uygulama hazırlamaya çalışıyorum. Sizlerde kendi hayal gücünüzü kullanarak yeni projeler geliştirebilir ve paylaşabilirsiniz.
Projelerinizi scratch.mit.edu adresinden online olarak veya bilgisayarınıza indirerek offline olarak yapabilirsiniz. Nasıl indirip kuracağınız bilmiyorsanız “Scratch Nedir?” yazıma bakabilirsiniz.
Yılan Oyunu
Bu dersimizde yine bir oyun yapıyoruz. Bu oyun 90’lı yılların ortalarında yaygınlaşmaya başlayan cep telefonlarında bulunan basit ama bir o kadarda eğlenceli bir oyun olan “Snake” oyununun bir benzeri olacak. Oyunumuzda hazır kuklalar kullanmayacağız. Küçük 3 adet kare çizip kodlayarak oyunumuzu yapmış olacağız. Detaylara geçelim:
Oyunumuzda siyah renkli yılanımız baş ve gövde olarak iki bölümden oluşuyor. Baş kısmını ayrı gövde kısmını ayrı kodlayacağız. İlk başlarda zor gibi görünse de aslında çok basit bir mantıkla yapabileceğiniz bir oyun. Şimdi eklediğimiz kukla ve sahnelere bakalım.
Gördüğünüz gibi hazır kuklalar yerine kendi çizdiğimiz küçük kareler kullanıyoruz. Kuklaların isimlerini “yılanbaşı”, “yılangövde” ve “yem” olarak belirledim. Siz de istediğiniz gibi değiştirebilirsiniz. Kuklaları oluştururken öncelikle bir tane siyah kare çizdim ve sonra kopyala diyerek bu kuklayı çoğalttım. Daha sonra birinci kuklaya göz ve dil çizdim, üçüncü kuklanın ise sadece rengini değiştirerek yeşil yaptım. Kuklalarımız bu şekilde hazırlanmış oldu.
Yılan başını çizerken dikkat etmeniz gereken nokta yılanın kırmızı dilini başına değmeden çizdim. Aşağıda büyütülmüş olarak görüyorsunuz.
Yılanın dili ile başının birbirine değmemesinin sebebi kodlarken kırmızı renk ile siyah renk birbirine değdiği zaman oyunun bitecek olması. Yılan hareket ederken kendi gövdesine yani siyah renge değerse oyunumuz bitecek. Renkleri nasıl ayarladığımızı kodları anlatırken aşağıda anlatacağım.
Yılan Oyunu Kodları
Dekorumuzun (Sahne) Kodları;
Dekora ait iki ayrı kod bloğu var.
Birinci blokta;
- satır yeşil bayrağa tıklandığında programın başlamasını sağlıyor
- satırda dekor1 isimli dekorumuzun görünmesini sağlıyoruz. (Bu dekor pembe bir çerçeveden oluşuyor. Ortası boş bir dikdörtgen çizerek oluşturabilirsiniz.)
- satırda “hız” isimli değişkenimizin ilk değerini “5” yapıyoruz.
- satırda “Puan” isimli değişkenimizin ilk değerini “0” yapıyoruz.
- ve 6. satırda ise “Hız” ve “Puan” değişkenlerimizin gizlenmesini sağlıyoruz. Puan değişenimiz oyun bittiği zaman görünecek.
İkinci blokta;
- satır “Bitti” haberi gelince kodların çalışmasını sağlıyor.
- satırda Puan değişkenimizin 10 katını yazdırıyoruz.
- satırda puan değişkenimizi ekranda gösteriyoruz.
- satırda “Galaxy” isimli dekora geçiyoruz. (Bu dekor oyun bittiğinde görünmesi için eklenmiştir. Üzerine “Oyun Bitti” gibi bir yazı yazabilirsiniz)
- satırda tüm kuklaları durduruyoruz.
Yılan Başına Ait Kodlar;
Yılan başına ait üç ayrı kod bloğu var.
Birinci blokta;
- satır yeşil bayrağa tıklandığında kuklamız görünüyor.
- satırda kuklamızı sahnenin tam ortasına yani X:0, Y:0 noktasına gönderiyoruz ve 90 yönüne yani sağa döndürüyoruz.
- satırda sürekli tekrarla bloğu içerisinde yılanımızın pembe renge değip değmediğini yani kenara çarpıp çarpmadığını kontrol ediyoruz ve değiyorsa “Bitti” haberini salıyoruz ve hız değişkenini “0” yapıyoruz.
“….haberini sal” ve “…. haberini aldığımda” konusuna burada biraz değinelim. “Haberini sal” komutu tüm kuklalar ve dekorlar için bizim isimlendirdiğimiz bir haberi ortamda yayınlar. Eğer kuklalar veya dekorlardan herhangi biri “Haberini aldığımda” komutu ile ilişkilendirilip programlanmışsa bu haber yayınlanır yayınlanmaz o satırlar çalışmaya başlar. Bu oyunumuzdan örnek verecek olursak; bitti haberi salındıktan sonra aynı kukla içerisinde Bitti haberini aldığımda ile başlayan 2. blok kümesi çalışmaya başlar ve kulayı gizler.
- satırda yine eğer bloğu içerisinde kırmızı renk (yılanın dili) siyah renge (yılanın gövdesi) değiyorsa yine bitti haberini salıyoruz ve hız değişkenini “0” yapıyoruz.
İkinci blokta;
“Bitti” haberini aldığımda bloğunu kullanarak kuklamızı gizliyoruz.
Üçüncü blokta;
Sürekli tekrarla bloğu içerisine alt alta eğer blokları ile kuklanın yön tuşlarından hangisine basılı ise o yöne dönmesini ve hız değişkeni içerisindeki kadar adım ilerlemesini sağlıyoruz. Ayrıca eğer blokları ile kuklanın gittiği yönün tam tersi yöne kuklanın gitmemesi için (örnek olarak; yukarı gidiyorsa aşağı tuşa basıldığında direk aşağı dönmemesi için veya kuklamız sağa gidiyorsa, sol tuşa basıldığında direkt sola dönememesi için) yönün tam tersi yönde olmaması gerektiği koşulu eklenmiştir. Örnek olarak;
Yılan Gövdesine Ait Kodlar;
Yılan gövdesine ait üç ayrı kod bloğu var.
Birinci blokta;
Kuklamız yeşil bayrağa tıklandığında gizli oluyor ve sürekli olarak “yılanbaşı” isimli kuklaya doğru hareket ediyor ve yine sürekli olarak kendi ikizini oluşturuyor. Fakat bunu yaparkenilk satırda gizle dediğimiz için kuklamız görünmüyor.
İkinci blokta;
İkiz olarak başladığımda bloğunu görüyoruz. Bu blok ilk blokta kendisinden yarattığı ikizlerin kodlandığı bölümün başlangıcı oluyor. İkiz olarak başlayan kuklayı görünür yapıyoruz ve Puan/10 saniye bekledikten sonra bu ikizi siliyoruz. Burada puan değişkenimiz ilk başta “0” olduğundan kuklamızın ikizi 0/10=0 olacağından neredeyse biz hiç görmeden siliniyor. Puan kazandıkça bekleme süresi artacağından kuklamızın yarattığı ikizler yılan başını takip eden bir kuyruk gibi uzamaya başlayacak.
İkinci blokta;
Bitti haberi geldiğinde kuklamızın gizlenmesini sağlıyoruz.
Yeme Ait Kodlar;
İlk bölümde yeşil bayrağa tıklandığında kuklamız görünüyor ve X değişkeninin içerisine -220 ile +220 arasında bir sayı atıyoruz. Aynı şekilde Y değişkeninin içerisine de -160 ile +160 arasında bir sayı gönderiyoruz. Daha sonra kuklamızı bu rastgele seçilen X,Y koordinatına gönderiyoruz. Sonra sürekli tekrarla bloğu içerisinde “yem” kuklamızın “yılanbaşı” kuklasına değip değmediğini kontrol ediyoruz ve eğer değiyorsa “yem” kuklamızı yine rastgele bir X,Y koordinatına gönderiyoruz. Daha sonra Puan değişkenimizi “1”, hız değişkenimizi ise”0.2″ arttırıyoruz.
İkinci bölümde bitti haberi gelince yem kuklamızın gizlenmesini sağlıyoruz.
Sonuç olarak oyun içerisinde yılanımız kenara veya kendi kuyruğuna çarptığında bitti haberi salınıyor ve tüm kuklalar bitti haberi geldiğinde gizlenerek oyun bitiyor.
Bu oyunda yeni kod blokları görmüş olduk. Eğer aklınıza takılan veya anlamadığınız bir yer var ise yorum olarak yazın.
merhaba hocam ben bütün kodların aynısını yazdım fakat gövde görünüyor başta ve yön tuşlarına basınca oyun bitti deyip bitiriyor