- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
İş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()
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Yorumlar
Yorum Gönder