Sayfalar

9 Mayıs 2020 Cumartesi

Balık Avlama Oyunu

Merhabalar. Son dersimiz olan "Aç Köpek Balığı" dersimizde bir köpek balığının fare imlecini, ağzını açıp kapatarak takip etmesini sağlamıştık. Bir de ekranda rastgele yüzen bir balığımız vardı. Bu ikiliyi kullanarak "Balık Avlama" isimli bir oyun hazırlayalım. Oyunumuzda köpek balığı balığı yakaladığında oyunu kazansın. Nelere ihtiyacımız olduğunu bir düşünelim ve problemi nasıl çözeceğimiz konusunda algoritmamızı oluşturalım. 

"Köpek balığı balığı yakaladığında" cümlesini düşünelim. Köpek balığının, diğer balığı yakalaması kuklaların birbirine temas etmesi anlamına gelmektedir. Dolayısıyla biz eğer kuklaların birbirine dokunduğu anda çalışacak bir kod yazabilirsek bu sorunu çözebiliriz. Kod panelindeki başlıkları incelediğinizde "Algılama" adında bir başlık göreceksiniz. Bu başlık altında "fare-imlecine değiyor mu?" kodu bizim ihtiyacımız olan kod. Bu kodun şeçenekleri arasında eklenen diğer kuklalar ve kenar seçenekleri mevcut. Biz oyunumuza eklediğimiz diğer kukla olan fish seçeneğini seçerek kodlama alanına sürükleyelim(Shark 2 isimli kukla seçili iken). 
Kodlama alanına sürüklediğiniz koda dikkat ederseniz diğerlerinden biraz daha farklı görünüyor. Diğer kodlar birbirine geçmeli bir yapıya sahipken bu kod altıgen bir şekilde. Bir başka kodla bağlanacağına dair de bir yapısı yok gibi görünüyor. Bu hali ile tek başına bir işimize yaramayacağı kesin. :) O zaman ihtiyacımız olan başka bir şeyler daha var demektir. Şimdi cümlemizi hatırlayalım. "Köpek balığı, balığı yakaladığında oyunu kazansın". Yakaladığında kelimesi bir şart ifade ediyor. Bu şartın yerine gelmesi halinde oyunu kazanacak. Öyle ise bizim bu şartın gerçekleşme durumunu kontrol edebileceğimiz kod veya kodlara ihtiyacımız var. Cevabı az önceki cümlede verdim sanırım. Kontrol etmek... Kontrol başlığı altındaki kodlara bir bakalım.

Sizin de göreceğiniz üzere kontrol başlığı altında şartlı durumları değerlendirebileceğim 4 adet kod var. Ben bu kodlardan "eğer ise" bloğunu kullanacağım. Sizler diğerlerini kullanarak da yapmayı deneyebilirsiniz. Kodlama ile bir durumu farklı şekillerde çözebiliriz. Tek bir çözüm olacağını düşünmeyin. :) Bu arada kuklaların isimlerini değiştireceğim. Kukla ayarları kısmından siz de değiştirebilirsiniz. Shark2 yerine köpek balığı, fish yerine balık yazacağım. Kukla isimlerini değiştirdiğimizde kodlama alanındaki kodlar otomatik olarak değişecektir. Yazdıklarınızı tek tek değiştirmek zorunda kalmayacaksınız. 

Şimdi yapmamız gereken işi sözlü olarak ifade edelim ve bunu hangi kodlarla yapabileceğimizi düşünelim. "Köpek balığı balığı yakalarsa oyunu kazanır." Bu cümledeki şartı(Yakalarsa) sağlamak için "eğer ise" koduna, dokunup dokunamadığını anlayabilmek için "Balığa değiyor mu?" koduna ihtiyacım var. Eksik olan ise oyunun nasıl biteceği. Kontrol başlığı altında bulunan "durdur tümü" kodu ile bunu yapacağız. Bu kod kodlama alanında bulunan tüm kodların durdurulmasını sağlayacak. Sadece bir kuklanın veya bir kodun durdurulmasını da sağlayabilirsiniz. 


Kodlarımızı yukarıdaki gibi eklediğimizde çalışacak mı? Tabiki hayır. Ne zaman çalışacağını gösteren bir başlangıç koduna (Olaylar başlığı) sahip değil. Bizim oyunumuz bayrak butonu ile başlayacağına göre "bayrak butonuna tıklayınca" kodunu eklemeliyiz. Ancak bu da yeterli olmayacak. Neyin eksik olduğunu sizlerin rahatlıkla bulabileceğinizi düşünüyorum. Bir sonraki dersimizde görüşmek üzere. :)

Hiç yorum yok:

Yorum Gönder