Python ile Kaplumbağa Yarışı Oyunu
Bu örneğimizde, dökümantasyon okuma becerimize katkıda bulunması amacıyla Python ile kaplumbağa yarışı yapabileceğimiz basit bir program kodlayacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Gerekli kütüphaneleri içe aktar from turtle import Turtle, Screen import random yarisma_basladi_mi = False ekran = Screen() ekran.setup(width=500, height=400) kullanici_tahmini = ekran.textinput(title="Bahis yapın", prompt="Hangi kaplumbağa yarışı kazanır? Bir renk girin: ") renkler = ["red", "orange", "yellow", "green", "blue", "purple"] y_pozisyonlari = [-70, -40, -10, 20, 50, 80] tum_kaplumbagalar = [] # 6 kaplumbağa oluştur for kaplumbaga_indeksi in range(0, 6): yeni_kaplumbaga = Turtle(shape="turtle") yeni_kaplumbaga.penup() yeni_kaplumbaga.color(renkler[kaplumbaga_indeksi]) yeni_kaplumbaga.goto(x=-230, y=y_pozisyonlari[kaplumbaga_indeksi]) tum_kaplumbagalar.append(yeni_kaplumbaga) if kullanici_tahmini: yarisma_basladi_mi = True while yarisma_basladi_mi: for kaplumbaga in tum_kaplumbagalar: # 230, 250'nin yarısı olan kaplumbağanın genişliğinden çıkarıldı. if kaplumbaga.xcor() > 230: yarisma_basladi_mi = False kazanan_renk = kaplumbaga.pencolor() if kazanan_renk == kullanici_tahmini: print(f"Kazandınız! {kazanan_renk} renkli kaplumbağa kazandı!") else: print(f"Kaybettiniz! {kazanan_renk} renkli kaplumbağa kazandı!") # Her kaplumbağanın rastgele bir miktar hareket etmesini sağla. rastgele_mesafe = random.randint(0, 10) kaplumbaga.forward(rastgele_mesafe) ekran.exitonclick() |
Yukarıdaki kodumuzda, kaplumbağaların bir yarışını simüle eden bir program oluşturduk. İlk olarak, turtle
modülünden Turtle
ve Screen
sınıflarını, ayrıca random
modülünü içe aktardık. Bu kütüphaneler, kaplumbağaların hareketini ve ekrandaki görünümlerini kontrol etmemiz için gereklidir.
Programın başında, yarışın başlayıp başlamadığını kontrol etmek için bir boolean değişkeni olan yarisma_basladi_mi
‘yi ve kaplumbağaların yarışacağı ekranı temsil eden ekran
adlı bir Screen
nesnesi oluşturduk. Ayrıca, kullanıcıya hangi kaplumbağanın yarışı kazanacağı konusunda bir tahminde bulunmasını istedik ve bu tahmini kullanici_tahmini
adlı değişkene kaydettik.
Renklerin ve kaplumbağaların başlangıç pozisyonlarının listelerini oluşturduk. Bu listeleri kullanarak, altı farklı kaplumbağa oluşturduk ve her birini ekranın sol tarafında belirli bir y pozisyonunda başlatmak üzere ayarladık.
Eğer kullanıcı bir tahminde bulunduysa, yarışı başlatıyoruz. Kaplumbağaların her biri rastgele bir mesafede hareket eder. Bir kaplumbağa ekranın sağına, yani bitiş çizgisine ulaştığında, yarış sona erer. Ardından, kazanan kaplumbağanın rengi ile kullanıcının tahminini karşılaştırarak, kullanıcıya yarışın sonucunu bildiriyoruz.
Son olarak, kullanıcının ekranın üzerine tıklamasıyla oyunu kapatabilmesi için exitonclick()
fonksiyonunu kullandık. Bu, programın sonunda kullanıcıya interaktif bir çıkış seçeneği sunar.
- Turtle Sınıfı:
- Bu sınıfı bir kaplumbağa oluşturmak için kullanıyoruz. Kaplumbağa, ekran üzerinde hareket edebilen, şekiller çizebilen ve belirli özelliklere sahip bir nesnedir.
- Dökümantasyon: Turtle Sınıfı
- Screen Sınıfı:
- Bu sınıfı kaplumbağa çizimleri için bir pencere veya ekran oluşturmak amacıyla kullanıyoruz.
- Dökümantasyon: Screen Sınıfı
- penup() ve pencolor() Fonksiyonları:
penup()
fonksiyonunu kaplumbağanın hareket ederken çizim yapmamasını sağlamak için kullanıyoruz.pencolor()
fonksiyonunu kaplumbağanın kalem rengini almak için kullanıyoruz.- Dökümantasyon: Kaplumbağa Grafik Kontrolleri
- color() Fonksiyonu:
- Bu fonksiyonu kaplumbağanın rengini ayarlamak için kullanıyoruz.
- Dökümantasyon: color() Fonksiyonu
- goto() Fonksiyonu:
- Kaplumbağanın belirli bir pozisyona gitmesini sağlamak için bu fonksiyonu kullanıyoruz.
- Dökümantasyon: goto() Fonksiyonu
- xcor() ve ycor() Fonksiyonları:
- Bu fonksiyonları kaplumbağanın mevcut x veya y koordinatını almak için kullanıyoruz.
- Dökümantasyon: xcor() ve ycor() Fonksiyonları
- forward() Fonksiyonu:
- Kaplumbağanın belirli bir mesafe ileri gitmesini sağlamak için bu fonksiyonu kullanıyoruz.
- Dökümantasyon: forward() Fonksiyonu
- exitonclick() Fonksiyonu:
- Ekranın üzerine tıklanarak pencerenin kapatılmasını sağlamak için bu fonksiyonu kullanıyoruz.
- Dökümantasyon: exitonclick() Fonksiyonu