Mustafa Aferin
Özgün ve farklı içerikler üreten python, linux ve teknoloji haberleri okumayı seven birisi

Python ile Basit Bir Tetris Oyunu Yapımı

Python ile Basit Bir Tetris Oyunu Yapımı

Tetris, klasik bir bulmaca oyunu olup, Python gibi programlama dillerinde uygulaması oldukça eğlenceli bir projedir. Bu blog yazısında, temel bir konsol tabanlı Tetris oyununu Python kullanarak nasıl yapabileceğinizi adım adım öğreneceğiz.

Adım 1: Gerekli Modüllerin İmport Edilmesi

İlk olarak, oyunumuz için gerekli olan modülleri içe aktaralım:

import random
import os
import time

random modülü, tetromino şekillerini rastgele seçmek için kullanılacak. os modülü, ekran temizleme işlevselliği için, ve time modülü de oyun döngüsünde bir gecikme eklemek için kullanılacak.

Adım 2: Oyun Tahtasının ve Tetromino Şekillerinin Tanımlanması

Oyun tahtasını temsil etmek için bir liste kullanacağız ve bu tahta üzerinde hareket edecek tetromino şekillerini tanımlayacağız.

# Oyun tahtası boyutları
ROW, COLUMN = 20, 10

# Tetris tahtası
board = [[' ' for _ in range(COLUMN)] for _ in range(ROW)]

# Şekil listesi
tetrominoes = [
[['1', '1', '1', '1']],
[['1', '1', '1'], ['0', '1', '0']],
[['1', '1', '1'], ['1', '0', '0']],
[['1', '1', '1'], ['0', '0', '1']],
[['1', '1'], ['1', '1']],
[['1', '1', '0'], ['0', '1', '1']],
[['0', '1', '1'], ['1', '1', '0']]
]

Bu adımda, oyun tahtasının boyutlarını belirledik ve boş bir tahta oluşturduk. Ayrıca, farklı tetromino şekillerini içeren bir liste tanımladık.

Adım 3: Temel Fonksiyonların Oluşturulması

Oyunumuzu yönetmek için bazı temel fonksiyonlar oluşturacağız. Bu fonksiyonlar tetromino şekillerini tahtaya eklemek, kaldırmak, tahtayı temizlemek gibi görevleri yerine getirecek.

import random
import os
import time

# Oyun tahtası boyutları
ROW, COLUMN = 20, 10

# Tetris tahtası
board = [[' ' for _ in range(COLUMN)] for _ in range(ROW)]

# Şekil listesi
tetrominoes = [
[['1', '1', '1', '1']],
[['1', '1', '1'], ['0', '1', '0']],
[['1', '1', '1'], ['1', '0', '0']],
[['1', '1', '1'], ['0', '0', '1']],
[['1', '1'], ['1', '1']],
[['1', '1', '0'], ['0', '1', '1']],
[['0', '1', '1'], ['1', '1', '0']]
]

# Rastgele bir tetromino seçme
def get_random_tetromino():
return random.choice(tetrominoes)

# Tahtayı temizleme
def clear_board():
for i in range(ROW):
for j in range(COLUMN):
board[i][j] = ' '

# Şekli tahtaya ekleme
def place_tetromino(tetromino, row, col):
for i in range(len(tetromino)):
for j in range(len(tetromino[i])):
if tetromino[i][j] == '1':
board[row + i][col + j] = '1'

# Şekli tahtadan kaldırma
def remove_tetromino(tetromino, row, col):
for i in range(len(tetromino)):
for j in range(len(tetromino[i])):
if tetromino[i][j] == '1':
board[row + i][col + j] = ' '

# Tahtayı ekrana yazdırma
def print_board():
os.system('cls' if os.name == 'nt' else 'clear')
for row in board:
print('|' + '|'.join(row) + '|')
print('-' * (2 * COLUMN + 1))

# Tetrominoyu tahtada hareket ettirme
def move_tetromino(tetromino, row, col, move):
remove_tetromino(tetromino, row, col)
if move == 'down':
row += 1
elif move == 'left':
col -= 1
elif move == 'right':
col += 1
place_tetromino(tetromino, row, col)
return row, col

# Tetrominoyu tahtada döndürme
def rotate_tetromino(tetromino):
return list(zip(*reversed(tetromino)))

# Tahtada bir satırı kontrol etme ve temizleme
def check_and_clear_row():
global board
for i in range(ROW - 1, -1, -1):
if ' ' not in board[i]:
del board[i]
board.insert(0, [' ' for _ in range(COLUMN)])

# Oyun döngüsü
def run_game():
clear_board()
current_tetromino = get_random_tetromino()
current_row, current_col = 0, COLUMN // 2 - len(current_tetromino[0]) // 2

while True:
print_board()
user_input = input("Left (L), Right (R), Rotate (U), Down (D): ").lower()

if user_input == 'l':
current_row, current_col = move_tetromino(current_tetromino, current_row, current_col, 'left')
elif user_input == 'r':
current_row, current_col = move_tetromino(current_tetromino, current_row, current_col, 'right')
elif user_input == 'u':
current_tetromino = rotate_tetromino(current_tetromino)
elif user_input == 'd':
current_row, current_col = move_tetromino(current_tetromino, current_row, current_col, 'down')

# Tahtada bir satır kontrol et ve temizle
check_and_clear_row()

# Yeni bir tetromino getir
if current_row + len(current_tetromino) > ROW:
current_tetromino = get_random_tetromino()
current_row, current_col = 0, COLUMN // 2 - len(current_tetromino[0]) // 2
else:
current_row, current_col = move_tetromino(current_tetromino, current_row, current_col, 'down')

# Oyunu başlat
if __name__ == "__main__":
run_game()

bu şekilde basit bir tetris oyunu yapabilirsiniz 🙂

Cevap bırakın

E-posta hesabınız yayımlanmayacak.