Giriş
Yılan oyunu, basit ama eğlenceli bir klasik arcade oyunudur. Python ile bu oyunu geliştirmek, programlama becerilerinizi geliştirmek için harika bir fırsattır. Bu yazıda, Python kullanarak yılan oyununu nasıl oluşturacağınızı adım adım inceleyeceğiz. Oyun, kullanıcı etkileşimi, grafikler ve temel oyun mantığı gibi birçok önemli bileşeni içerecektir. Hazırsanız, hemen başlayalım!
Gerekli Kütüphaneler
Öncelikle, Python ile yılan oyunu geliştirebilmek için gerekli kütüphaneleri yüklememiz gerekiyor. Bu oyunda genellikle, Pygame kütüphanesi kullanılır. Pygame, 2B oyunlar geliştirmek için güçlü bir araçtır ve kullanıcı dostudur. Başlamak için terminalinizde şu komutu çalıştırarak Pygame’i yükleyin:
pip install pygame
İlk olarak, yılan oyunumuzun temellerini atmak için gereken Pygame kütüphanesini yükledikten sonra, projeyi oluşturduğumuz dizine geçelim ve bir Python dosyası oluşturalım. Bu dosya üzerinde çalışmaya başlayacağız.
Oyun Penceresinin Oluşturulması
Bütün oyunların temelinde bir pencere oluşturma işlemi vardır. Bu pencerede yılanımızı, yemlerimizi ve skorumuzu göstereceğiz. İşte Pygame kullanarak bir oyun penceresi oluşturma kodu:
import pygame
# Renk tanımlamaları
white = (255, 255, 255)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
# Oyun penceresinin boyutları
width = 600
height = 400
# Pygame başlatma
pygame.init()
# Oyun penceresini oluşturma
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption('Yılan Oyunu')
# Oyun döngüsü
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# Pencereyi beyaz ile doldur
game_display.fill(white)
pygame.display.update()
Yukarıdaki kod, Pygame kütüphanesini başlatarak bir pencere oluşturmaktadır. Oyun döngüsü devam ettikçe pencere beyaz arka plana sahip olacaktır. Bu noktada, kullanıcı pencereyi kapatana kadar oyun devam edecektir.
Yılanın Oluşturulması
Şimdi, yılanımızı oluşturmaya başlayabiliriz. Yılanı oluşturmak için, konumunu ve uzunluğunu belirlememiz gerekiyor. Yılan, bir dizi bloktan oluşacaktır. İlk aşama olarak, yılanın başı ve gövdesi için gerekli değişkenleri tanımlayalım:
snake_block = 10
snake_speed = 15
snake_list = []
snake_length = 1
Yukarıda, yılanın her bir parçasının boyutunu tanımladık. Ayrıca, yılanımızın hızını da ayarladık. Şimdi ilerleyelim ve yılanı ekranda görüntüleyelim:
def draw_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(game_display, black, [x[0], x[1], snake_block, snake_block])
Bu fonksiyon, yılanın her bir parçasını ekranda siyah kareler olarak çizecektir. Yılanın bir parçasını temsil etmek için bir dizi koordinat kullanıyoruz. Bunu yaparken, her bir blok için yılanın ‘x’ ve ‘y’ koordinatlarını belirtiyoruz.
Yılanı Hareket Ettirmek
Yılan oyununu geliştirmek için, yılanın yönünü ve hareket etme mantığını eklememiz gerekiyor. KLavye girişlerini yöneterek yılanın hareketini sağlayabiliriz:
def game_loop():
game_over = False
game_close = False
x1 = width / 2
y1 = height / 2
x1_change = 0
y1_change = 0
# Yılanın başlangıç koordinatlarını ve listesini tanımlama
snake_list = []
snake_length = 1
while not game_over:
while game_close == True:
game_display.fill(blue)
message('Kaybettin! Q çıkış, C devam')
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
game_loop()
if event.key == pygame.K_LEFT:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
Yukarıdaki kod, kullanıcının sağa, sola, yukarı ya da aşağıya yön tuşlarına basarak yılanın hareket etmesini sağlamaktadır. ”K” karakterlerini kullanarak oyunu yeniden başlatma veya çıkma işlevi de eklenmiştir.
Yem Oluşturma ve Yeme Mekaniği
Yılan oyununda temel bir mekanik, yılanın yemleri yemesi ve uzaması gerekmektedir. Öncelikle, yemi oluşturmalıyız. Yemi rastgele bir konuma koymak için şu şekilde bir fonksiyon yazabiliriz:
def create_food():
food_x = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
food_y = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
return food_x, food_y
Yem, yılanın yediği zaman yılanın boyunun uzamasına neden olacaktır. Bunun için, yemi yediğinde yılan listesine bir parça eklemek gerekiyor:
if x1 == food_x and y1 == food_y:
food_x, food_y = create_food()
snake_length += 1
Yem yendiğinde yılanın boyunu artırırken, yem de yeni bir rastgele konuma yerleştirilmektedir. Bu mekanizmalar, oyunun dinamiklerini etkileyen temel unsurlardır.
Oyun Bitişi ve Skor Hesaplama
Oyun bittiğinde, yılanın başladığı noktadan daha fazlasını yendiği için bir skor hesaplaması yapmak isteyeceğiz. Bu noktada yılanın kendine çarpması durumunu ele almalıyız:
if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:
game_close = True
if x1 in snake_list[:-1] or y1 in snake_list[:-1]:
game_close = True
Uyuşmazlık durumunda kullanıcıya bir kaybettiğini belirten bir mesaj göstereceğiz. Sonrasında, toplam yemi yediği zaman oyunun sonunda bir skor hesaplayacağız.
Oyununu Tamamlama
Son olarak, tüm bu bileşenleri birleştirerek oyunu tamamlayabiliriz. İlgili fonksiyonları bir araya getirerek, oyun döngüsü içinde yılanı ve yemi ekranda çizmek ve kullanıcı girişlerini işlemek üzere tamamlayabiliriz:
def game_loop():
... # Önceki tüm kodlar buraya yerleştirilmeli
while not game_over:
... # Oyun mantığı burada işlenmeli
draw_snake(snake_block, snake_list)
pygame.draw.rect(game_display, green, [food_x, food_y, snake_block, snake_block])
pygame.quit()
quit()
Oyunumuz artık tamam. Kendi yılan oyununuzu çalıştırabilir ve Python öğreniminizi bir üst seviyeye taşıyacak bu projeyi özelleştirebilirsiniz.
Sonuç
Python ile yılan oyunu geliştirmek, hem eğlenceli bir deneyim hem de programlama becerilerinizi pekiştirmek için harika bir yoldur. Burada, yılanın hareketi, yemlerin yaratılması ve oyunun bitişi gibi temel bileşenleri ele aldık. Bu proje ile Pygame kütüphanesini kapsamlı bir şekilde öğrenebilir ve oyununuzu daha da geliştirmek için yeni özellikler ekleyebilirsiniz.
Son olarak, öğrendiğiniz bilgileri başka projelere de entegre etmeyi unutmayın. Yeni kütüphaneler, uygulamalar ve oyun mekanikler üzerinde çalışarak Python becerilerinizi daha da ileri taşıyabilirsiniz. Şimdi, kendi yılan oyununuzla eğlenmeye başlayın!