Flappy Bird - En Yüksek Skoru Gösterin | Python

Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
adam yazmış ya zaten niye ördek sürüsü gibi aynı şeyi yazıp duruyonuz
 
C:\Users\pc\Desktop\Flappy Bird>main.py
Traceback (most recent call last):
File "C:\Users\pc\Desktop\Flappy Bird\main.py", line 1, in <module>
import pygame
ModuleNotFoundError: No module named 'pygame'

:imtiredboss: abi lutfen yardım et en ssevdıgım oyun bu

kurulum icin bir txt falan yap barı
pip install pygame
 
Python ile yapmış olduğum Flappy Bird oyununu sizlere tanıtmak istiyorum.
En yüksek skoru yazmayı unutmayın! Kanıt olmadan kabul etmem.
İndirme Linki:

ChatGPT’den yardım aldım
Main.py yi çalıştırmanız yeter.
daha gelişmişi burda gpt ile yapdım
import pygame
import random
import sqlite3

# Veritabanı bağlantısını aç
conn = sqlite3.connect('high_scores.db')
cursor = conn.cursor()

# Yüksek skorlar için tabloyu temizle
cursor.execute('DROP TABLE IF EXISTS scores')

# Yüksek skorlar için yeni tablo oluştur
cursor.execute('''
CREATE TABLE scores (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
score INTEGER NOT NULL
)
''')
conn.commit()

# Pygame'i başlat
pygame.init()

# Oyun penceresi boyutları
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 600

# Renkler
WHITE = (61, 142, 185)
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)

# Oyun pencereyi oluştur
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Flappy Bird")

# FPS (Saniyedeki kare sayısı)
FPS = 60
clock = pygame.time.Clock()

# Font
font = pygame.font.SysFont('Arial', 30)

# Kuş ayarları
bird_image = pygame.Surface((30, 30))
bird_image.fill(BLUE)
bird_rect = bird_image.get_rect(center=(100, SCREEN_HEIGHT // 2))
bird_velocity = 0
GRAVITY = 0.5
JUMP_STRENGTH = -10

# Borular
PIPE_WIDTH = 60
PIPE_GAP = 150
pipe_list = []
pipe_timer = 0

# Skor
score = 0
player_name = ""

# Fonksiyon: Skoru ekrana yazdır
def display_score(score, name):
score_text = font.render(f"{name}: {score}", True, WHITE)
screen.blit(score_text, (10, 10))

# Fonksiyon: Borular oluştur
def create_pipe():
pipe_height = random.randint(150, 400)
pipe_top = pygame.Rect(SCREEN_WIDTH, 0, PIPE_WIDTH, pipe_height)
pipe_bottom = pygame.Rect(SCREEN_WIDTH, pipe_height + PIPE_GAP, PIPE_WIDTH, SCREEN_HEIGHT - pipe_height - PIPE_GAP)
return pipe_top, pipe_bottom

# Fonksiyon: Boruları hareket ettir ve yok et
def move_pipes(pipes):
for pipe in pipes:
pipe.x -= 5
return [pipe for pipe in pipes if pipe.x > -PIPE_WIDTH]

# Fonksiyon: Kuşun borularla çarpışmasını kontrol et
def check_collision(pipes, bird_rect):
for pipe in pipes:
if bird_rect.colliderect(pipe):
return True
return False

# Fonksiyon: Skoru veritabanına ekle
def save_score(name, score):
cursor.execute('INSERT INTO scores (name, score) VALUES (?, ?)', (name, score))
conn.commit()

# Fonksiyon: En yüksek skorları listele
def get_high_scores(limit=5):
cursor.execute('SELECT name, score FROM scores ORDER BY score DESC LIMIT ?', (limit,))
return cursor.fetchall()

# Oyuncunun ismini almak için fonksiyon
def get_player_name():
global player_name
input_active = True
input_text = ''

while input_active:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
input_active = False
elif event.key == pygame.K_BACKSPACE:
input_text = input_text[:-1]
else:
input_text += event.unicode

screen.fill(BLACK)
text_surface = font.render("Enter your name: " + input_text, True, WHITE)
screen.blit(text_surface, (10, SCREEN_HEIGHT // 2))
pygame.display.flip()

player_name = input_text

# Oyuncu ismini almak
get_player_name()

# Ana oyun döngüsü
running = True
while running:
screen.fill(BLACK)

# Olayları kontrol et
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
bird_velocity = JUMP_STRENGTH

# Kuşun hareketi
bird_velocity += GRAVITY
bird_rect.y += bird_velocity

# Kuş ekranın dışına çıkarsa oyunu durdur
if bird_rect.top < 0 or bird_rect.bottom > SCREEN_HEIGHT:
save_score(player_name, score) # Skoru veritabanına kaydet
score = 0
bird_rect.center = (100, SCREEN_HEIGHT // 2)
bird_velocity = 0
pipe_list.clear()

# Boruları oluştur ve hareket ettir
pipe_timer += 1
if pipe_timer > 90:
pipe_timer = 0
pipe_list.extend(create_pipe())

pipe_list = move_pipes(pipe_list)

# Borularla çarpışma kontrolü
if check_collision(pipe_list, bird_rect):
save_score(player_name, score) # Skoru veritabanına kaydet
score = 0
bird_rect.center = (100, SCREEN_HEIGHT // 2)
bird_velocity = 0
pipe_list.clear()

# Skor artışı
for pipe in pipe_list:
if pipe.right == bird_rect.left:
score += 1

# Ekrana çizim yap
screen.blit(bird_image, bird_rect)
for pipe in pipe_list:
pygame.draw.rect(screen, WHITE, pipe)

display_score(score, player_name)

# Ekranı güncelle
pygame.display.flip()

# FPS ayarla
clock.tick(FPS)

# Yüksek skorları göster
high_scores = get_high_scores()
print("Top 5 High Scores:")
for i, hs in enumerate(high_scores, 1):
print(f"{i}. {hs[0]}: {hs[1]}")

pygame.quit()

# Veritabanı bağlantısını kapat
conn.close()
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt