Artık Python’un bilmeniz gereken tüm temellerine aşina olduğunuza göre, heyecan verici bir yaparak öğrenme etkinliğine geçelim! Labirentin sonundaki elmaya, sınırlarına dokunmadan ulaşması için böceğin yardımına koşmayı amaçlayan ilginç bir oyun yapalım.
Böceği kontrol etmek için klavyenin yön tuşlarını kullanacağız.
Hadi başlayalım!
Ortamın Kurulması
Öncelikle ortamı ayarlayalım. Adımları takip edelim.
- Öncelikle PictoBlox’un sprite kütüphanesinden böcek sprite’ını ekleyin.
- Tobi Sprite’ını silin.
- Arka planı Labirent olarak ekleyin.


Sahnemiz hazır


Etkinlik 1: Böcek Hareketi
Böceğin kodunu yazalım. Klavyenin yön tuşlarını kullanarak kontrol ettiğimiz için, böcek tuşa bastığımız yönde hareket etmelidir. Bunu çalıştırmak için sprite’ın move() ve setdirection() fonksiyonlarını kullanacağız.
Böceğin hareket kodu aşağıdadır:
sprite = Sprite('Beetle')
while 1:
if (sprite.iskeypressed('up arrow')):
sprite.setdirection(0)
sprite.move(5)
if (sprite.iskeypressed('down arrow')):
sprite.setdirection(180)
sprite.move(5)
if (sprite.iskeypressed('left arrow')):
sprite.setdirection(-90)
sprite.move(5)
if (sprite.iskeypressed('right arrow')):
sprite.setdirection(90)
sprite.move(5)
Kodu kontrol edin:

Oyun Koşullarını Programlayın
Ders İlerlemesi%50 Tamamlandı
Beetle Başlangıç Pozisyonunu Ayarla
Böceğin -150, -150’den başlamasını ve boyutunun ve yönünün %50’sinin yukarı bakmasını istiyoruz. Bunu aşağıdaki kodla yapabiliriz:
sprite.setdirection(0)
sprite.setsize(50)
sprite.gotoxy(-150, -150)
Python
Not : Bu kod aynı programa ve while döngüsünün üstüne eklenecektir.

Oyun Koşullarının Programlanması
Her oyunun uyulması gereken belirli kuralları ve koşulları vardır, ancak o zaman oyundan gerçek anlamda keyif alabilirsiniz. Oyunumuzda da, onu daha eğlenceli hale getirmek için bazı basit koşullar sunalım!
- Böceğin oluşturulan labirentin içerisinde hareket etmesi isteniyor, eğer labirentin herhangi bir çizgisine değecek şekilde hareket etmeye çalışırsa, labirentin içerisindeki mevcut konumundan bağımsız olarak başlangıç konumu olan orijinal konumuna geri dönecek.
- Böcek elmaya değdiğinde oyun biter.
Bunu yapmak için, sprite için istouchingcolor((R, G, B)) fonksiyonunu kullanacağız . Bu fonksiyon, sprite’ın belirtilen renge dokunup dokunmadığını test eder.
Duvarlara Dokunmak
Duvar rengi siyahtır ve RGB değeri (0, 0, 0)’dır. Bu yüzden böceğin duvara dokunup dokunmadığını kontrol etmek için while döngüsünün içine bir koşul ekleyeceğiz.
if (sprite.istouchingcolor((0, 0, 0))):
Eğer koşul doğruysa böcek başlangıç pozisyonuna gitmelidir.
if (sprite.istouchingcolor((0, 0, 0))):
sprite.setdirection(0)
sprite.gotoxy(-150, -150)
Şu ana kadar olan kodu test edin.

Apple’a Dokunmak
Elmanın rengi kırmızıdır ve RGB değeri (255, 0, 0)’dır. Bu yüzden böceğin elmaya dokunup dokunmadığını kontrol etmek için while döngüsünün içine bir koşul ekleyeceğiz.
if (sprite.istouchingcolor((255, 0, 0))):
Eğer koşul doğruysa oyun biter.
if (sprite.istouchingcolor((255, 0, 0))):
sprite.say('Game Over', 2)
break
Kodu test edin:

Tam Kod
sprite = Sprite(‘Beetle’)
sprite.setdirection(0) #kukla yönü
sprite.setsize(50) #kukla büyüklüğü
sprite.gotoxy(-150,-150) #kuklanın başlangıç pozisyonu
while 1:
if(sprite.iskeypressed(‘up arrow’)): #yukarı ok tuşuna basıldığında
sprite.setdirection(0) #kukla yönünü 0 derece yap
sprite.move(5) #5 adım ileri git
if(sprite.iskeypressed(‘down arrow’)): #aşağı ok tuşuna basıldığında
sprite.setdirection(180) #kukla yönünü 180 derece yap
sprite.move(5) #5 adım ileri git
if(sprite.iskeypressed(‘right arrow’)): #sağa ok tuşuna basıldığında
sprite.setdirection(90) #kukla yönünü 90 derece yap
sprite.move(5) #5 adım ileri git
if(sprite.iskeypressed(‘left arrow’)): #sol ok tuşuna basıldığında
sprite.setdirection(-90) #kukla yönünü -90 derece yap
sprite.move(5) #5 adım ileri git
if(sprite.istouchingcolor((0,0,0))): #isTouchingColor(0, 0, 0) # Siyah renge değiyor mu?
sprite.setdirection(0)
sprite.gotoxy(-150,-150)
if(sprite.istouchingcolor((255,0,0))): #isTouchingColor(255, 0, 0) # Kırmızı renge değiyor mu?
sprite.say(“Game Over”,2)
break
