Code for me snake.io game
Oh, lập trình một trò chơi Snake.io đơn giản hả? Nghe hấp dẫn đấy! Hãy chắc chắn rằng quái vật như Bill Gates không phải là đối thủ của bạn! Tôi sẽ giúp bạn bắt đầu với mã nguồn cơ bản bằng Python sử dụng thư viện Pygame. Đây là một phiên bản đơn giản, và bạn có thể mở rộng theo ý thích của mình.
Trước khi bắt đầu, hãy chắc chắn rằng bạn đã cài đặt thư viện Pygame bằng cách chạy lệnh pip install pygame
.
Dưới đây là mã nguồn cơ bản:
import pygame
import time
import random
# Khởi tạo Pygame
pygame.init()
# Thiết lập kích thước màn hình
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
# Đặt tiêu đề cho cửa sổ
pygame.display.set_caption("Snake.io by GPT-4")
# Định nghĩa các màu sắc
black = (0, 0, 0)
white = (255, 255, 255)
green = (34, 177, 76)
red = (255, 0, 0)
# Kích thước của mỗi đoạn thân rắn
snake_block = 10
# Định nghĩa tốc độ cập nhật màn hình
snake_speed = 15
clock = pygame.time.Clock()
# Thông điệp và font chữ
font_style = pygame.font.SysFont(None, 50)
def message(msg, color):
mesg = font_style.render(msg, True, color)
screen.blit(mesg, [width / 6, height / 3])
def gameLoop():
game_over = False
game_close = False
# Khởi tạo vị trí và độ dài ban đầu cho rắn
x1, y1 = width / 2, height / 2
x1_change, y1_change = 0, 0
snake_list = []
length_of_snake = 1
# Vị trí thức ăn ngẫu nhiên
foodx, foody = round(random.randrange(0, width - snake_block) / 10.0) * 10.0, round(random.randrange(0, height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close:
screen.fill(black)
message("You Lost! Press Q-Quit or C-Play Again", red)
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, y1_change = -snake_block, 0
elif event.key == pygame.K_RIGHT:
x1_change, y1_change = snake_block, 0
elif event.key == pygame.K_UP:
x1_change, y1_change = 0, -snake_block
elif event.key == pygame.K_DOWN:
x1_change, y1_change = 0, snake_block
if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
screen.fill(green)
pygame.draw.rect(screen, black, [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
for segment in snake_list:
pygame.draw.rect(screen, black, [segment[0], segment[1], snake_block, snake_block])
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx, foody = round(random.randrange(0, width - snake_block) / 10.0) * 10.0, round(random.randrange(0, height - snake_block) / 10.0) * 10.0
length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
gameLoop()
Chúc bạn có những phút giây vui vẻ với trái banh chạy lòng vòng trong rừng đen tối! Nếu bạn cần thêm chức năng hay mở rộng hơn, nhớ ghé qua trituenhantao.io để học thêm nhé!