Python (PyGame) Yılan Oyunu

 İşte pygame kullanarak yapılmış basit bir yılan oyunu örneği. Bu kodda:

  • Yılan ok tuşlarıyla kontrol edilir.

  • Yem yendiğinde yılan uzar.

  • Duvara veya kendine çarpınca oyun biter.

pip install pygame komutu ile pygame'i yükleyin

🐍 Basit Yılan Oyunu Kodu (pygame)


import pygame import time import random pygame.init() # Renkler beyaz = (255, 255, 255) siyah = (0, 0, 0) kirmizi = (213, 50, 80) yesil = (0, 255, 0) # Ekran boyutu genislik = 600 yukseklik = 400 ekran = pygame.display.set_mode((genislik, yukseklik)) pygame.display.set_caption("Yılan Oyunu") saat = pygame.time.Clock() yilan_boyutu = 10 hiz = 15 # Yazı fontu font = pygame.font.SysFont("Arial", 25) def skor_goster(skor): deger = font.render("Skor: " + str(skor), True, siyah) ekran.blit(deger, [0, 0]) def yilan(cizim_boyutu, yilan_listesi): for x in yilan_listesi: pygame.draw.rect(ekran, siyah, [x[0], x[1], cizim_boyutu, cizim_boyutu]) def oyun_dongusu(): oyun_bitti = False oyun_kapandi = False x1 = genislik / 2 y1 = yukseklik / 2 x1_degisim = 0 y1_degisim = 0 yilan_listesi = [] yilan_uzunluk = 1 yem_x = round(random.randrange(0, genislik - yilan_boyutu) / 10.0) * 10.0 yem_y = round(random.randrange(0, yukseklik - yilan_boyutu) / 10.0) * 10.0 while not oyun_bitti: while oyun_kapandi: ekran.fill(beyaz) mesaj = font.render("Kaybettin! C - Yeniden başla | Q - Çık", True, kirmizi) ekran.blit(mesaj, [genislik / 6, yukseklik / 3]) skor_goster(yilan_uzunluk - 1) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: oyun_bitti = True oyun_kapandi = False if event.key == pygame.K_c: oyun_dongusu() for event in pygame.event.get(): if event.type == pygame.QUIT: oyun_bitti = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x1_degisim = -yilan_boyutu y1_degisim = 0 elif event.key == pygame.K_RIGHT: x1_degisim = yilan_boyutu y1_degisim = 0 elif event.key == pygame.K_UP: y1_degisim = -yilan_boyutu x1_degisim = 0 elif event.key == pygame.K_DOWN: y1_degisim = yilan_boyutu x1_degisim = 0 x1 += x1_degisim y1 += y1_degisim if x1 >= genislik or x1 < 0 or y1 >= yukseklik or y1 < 0: oyun_kapandi = True ekran.fill(beyaz) pygame.draw.rect(ekran, yesil, [yem_x, yem_y, yilan_boyutu, yilan_boyutu]) yilan_kafa = [] yilan_kafa.append(x1) yilan_kafa.append(y1) yilan_listesi.append(yilan_kafa) if len(yilan_listesi) > yilan_uzunluk: del yilan_listesi[0] for x in yilan_listesi[:-1]: if x == yilan_kafa: oyun_kapandi = True yilan(yilan_boyutu, yilan_listesi) skor_goster(yilan_uzunluk - 1) pygame.display.update() if x1 == yem_x and y1 == yem_y: yem_x = round(random.randrange(0, genislik - yilan_boyutu) / 10.0) * 10.0 yem_y = round(random.randrange(0, yukseklik - yilan_boyutu) / 10.0) * 10.0 yilan_uzunluk += 1 saat.tick(hiz) pygame.quit() quit() oyun_dongusu()

Yorumlar