Giới thiệu sản phẩm
Tìm hiểu chủ đề: Máy điện tử cầm tay
Kiến thức, khái niệm: Tìm hiểu về game Tetris;Lên kịch bản, thiết kế thuật toán
Dự án trò chơi Tetris: Lên ý tưởng thuật toán, kịch bản thực hiện cho các khối gạch với các hình thù khác nhau
import pygame
import sys
pygame.init()
GRID_WIDTH, GRID_HEIGHT = 10, 20
CELL_SIZE = 30
SCREEN_WIDTH = GRID_WIDTH * CELL_SIZE
SCREEN_HEIGHT = GRID_HEIGHT * CELL_SIZE
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Tetrí")
clock = pygame.time.Clock()
BLACK = (0, 0, 0)
GRAY = (50, 50, 50)
CYAN = (0, 255, 255)
T_SHAPE = [(1, 0), (0, 1), (1, 1), (2, 1)]
current_shape = T_SHAPE
offset = [3, 0]
# Thiết lập sự kiện rơi khối mỗi 500ms = 0,5s
FALL_EVENT = pygame.USEREVENT + 1
pygame.time.set_timer(FALL_EVENT, 500)
def draw_grid():
for y in range(GRID_HEIGHT):
for x in range(GRID_WIDTH):
pygame.draw.rect(screen, GRAY, (x * CELL_SIZE, y * CELL_SIZE, CELL_SIZE, CELL_SIZE), 1)
def draw_shape(shape, offset):
for x, y in shape:
rect = pygame.Rect((x + offset[0]) * CELL_SIZE, (y + offset[1]) * CELL_SIZE, CELL_SIZE, CELL_SIZE)
pygame.draw.rect(screen, CYAN, rect)
running = True
while running:
screen.fill(BLACK)
draw_grid()
draw_shape(current_shape, offset)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
offset[0] -= 1
elif event.key == pygame.K_RIGHT:
offset[0] += 1
elif event.key == pygame.K_DOWN:
offset[1] += 1
elif event.type == FALL_EVENT:
offset[1] += 1
clock.tick(60)
pygame.quit()
sys.exit()
Kiến thức, khái niệm: Tìm hiểu về game Tetris;Lên kịch bản, thiết kế thuật toán
Dự án trò chơi Tetris: Lên ý tưởng thuật toán, kịch bản thực hiện cho các khối gạch với các hình thù khác nhau
import pygame
import sys
pygame.init()
GRID_WIDTH, GRID_HEIGHT = 10, 20
CELL_SIZE = 30
SCREEN_WIDTH = GRID_WIDTH * CELL_SIZE
SCREEN_HEIGHT = GRID_HEIGHT * CELL_SIZE
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Tetrí")
clock = pygame.time.Clock()
BLACK = (0, 0, 0)
GRAY = (50, 50, 50)
CYAN = (0, 255, 255)
T_SHAPE = [(1, 0), (0, 1), (1, 1), (2, 1)]
current_shape = T_SHAPE
offset = [3, 0]
# Thiết lập sự kiện rơi khối mỗi 500ms = 0,5s
FALL_EVENT = pygame.USEREVENT + 1
pygame.time.set_timer(FALL_EVENT, 500)
def draw_grid():
for y in range(GRID_HEIGHT):
for x in range(GRID_WIDTH):
pygame.draw.rect(screen, GRAY, (x * CELL_SIZE, y * CELL_SIZE, CELL_SIZE, CELL_SIZE), 1)
def draw_shape(shape, offset):
for x, y in shape:
rect = pygame.Rect((x + offset[0]) * CELL_SIZE, (y + offset[1]) * CELL_SIZE, CELL_SIZE, CELL_SIZE)
pygame.draw.rect(screen, CYAN, rect)
running = True
while running:
screen.fill(BLACK)
draw_grid()
draw_shape(current_shape, offset)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
offset[0] -= 1
elif event.key == pygame.K_RIGHT:
offset[0] += 1
elif event.key == pygame.K_DOWN:
offset[1] += 1
elif event.type == FALL_EVENT:
offset[1] += 1
clock.tick(60)
pygame.quit()
sys.exit()
Hình ảnh sản phẩm

Đăng nhập để tham gia bình luận