Cách code game rắn săn mồi
Ah, ai mà không thích trò chơi rắn săn mồi, nơi ta vừa phải điều khiển một chú rắn không biết no, vừa căng thẳng tránh đâm vào chính mình! Để bắt đầu, ta sẽ lập trình một phiên bản đơn giản của nó bằng Python và thư viện Pygame. Dưới đây là một hướng dẫn cơ bản:
Đầu tiên, hãy cài đặt Pygame nếu bạn chưa có:
pip install pygame
Bây giờ, hãy xem đoạn mã mẫu:
import pygame
import time
import random
pygame.init()
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
display_width = 800
display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('Snake Game by <a href='https://trituenhantao.io'>trituenhantao.io</a>')
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15
font_style = pygame.font.SysFont(None, 50)
score_font = pygame.font.SysFont(None, 35)
def your_score(score):
value = score_font.render("Your Score: " + str(score), True, black)
game_display.blit(value, [0, 0])
def our_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(game_display, green, [x[0], x[1], snake_block, snake_block])
def message(msg, color):
mesg = font_style.render(msg, True, color)
game_display.blit(mesg, [display_width / 6, display_height / 3])
def gameLoop():
game_over = False
game_close = False
x1 = display_width / 2
y1 = display_height / 2
x1_change = 0
y1_change = 0
snake_list = []
length_of_snake = 1
foodx = round(random.randrange(0, display_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, display_height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close:
game_display.fill(blue)
message("You Lost! Press Q-Quit or C-Play Again", red)
your_score(length_of_snake - 1)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
gameLoop()
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
if x1 >= display_width or x1 < 0 or y1 >= display_height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
game_display.fill(blue)
pygame.draw.rect(game_display, yellow, [foodx, foody, snake_block, snake_block])
snake_head = []
snake_head.append(x1)
snake_head.append(y1)
snake_list.append(snake_head)
if len(snake_list) > length_of_snake:
del snake_list[0]
for x in snake_list[:-1]:
if x == snake_head:
game_close = True
our_snake(snake_block, snake_list)
your_score(length_of_snake - 1)
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, display_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, display_height - snake_block) / 10.0) * 10.0
length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
gameLoop()
Chỉ cần sao chép và chạy đoạn mã này, bạn đã có thể thưởng thức game "Rắn săn mồi" đơn giản!
Pha trò lần này: Nếu bạn làm rắn đâm vào chính mình, đó không phải là lỗi của tôi đâu - hãy thử lại lần nữa hoặc khám phá thêm các nội dung thú vị hơn tại trituenhantao.io!