Giới thiệu sản phẩm

Tìm hiểu chủ đề: Các trò chơi kinh điển phần 1
Kiến thức, khái niệm: Tìm hiểu về game Snake game, lên kịch bản, thiết kế thuật toán về Trò chơi rắn săn mồi
Dự án lên kịch bản trò chơi rắn săn mồi: Xây dựng kịch bản và thiết kế nhân vật rắn săn mồi kèm khu vực di chuyển

import pygame
import random
pygame.init()

WIDTH, HEIGHT = 600, 400
BLOCK = 20
screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()


snake = [(140,100), (120, 100), (100, 100)]
direction = 'RIGHT'

# Tạo biến thức ăn với tọa đô ngẫu nhiên
food_x = random.randint(0, (WIDTH - BLOCK) // BLOCK) * BLOCK
food_y = random.randint(0, (HEIGHT - BLOCK) // BLOCK) * BLOCK
food = (food_x, food_y)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        elif event.type == pygame.KEYDOWN:
        # Nếu nhấn phím phải thì direction là 'RIGHT', nhấn phím trái thì direction là 'LEFT';Nếu nhấn phím lên thì direction là 'UP', nhấn phím xuống thì direction là 'DOWN'
            if event.key == pygame.K_RIGHT:
                direction = 'RIGHT'
            elif event.key == pygame.K_LEFT:
                direction = 'LEFT'
            elif event.key == pygame.K_UP:
                direction = 'UP'
            elif event.key == pygame.K_DOWN:
                direction = 'DOWN'

    # Đặt x,y lần lượt là tọa độ của đầu rắn
    head_x, head_y = snake[0]

    if direction == 'RIGHT':
        head_x += BLOCK
    elif direction == 'LEFT':
        head_x -= BLOCK
    elif direction == 'UP':
        head_y -= BLOCK
    elif direction == 'DOWN':
        head_y += BLOCK

    snake.insert(0, (head_x, head_y))
    snake.pop()  

    if head_x < 0 or head_x >= WIDTH or head_y < 0 or head_y >= HEIGHT:
        running = False

    if (head_x, head_y) == food:

        food_x = random.randint(0, (WIDTH - BLOCK) // BLOCK) * BLOCK
        food_y = random.randint(0, (HEIGHT - BLOCK) // BLOCK) * BLOCK
        food = (food_x, food_y)


    screen.fill((0, 0, 0))

    pygame.draw.rect(screen, (255, 0, 0), (*food, BLOCK, BLOCK))

    for part in snake:
        pygame.draw.rect(screen, (0, 255, 0), (*part, BLOCK, BLOCK))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()
Hình ảnh sản phẩm
Hãy bình luận để nhặt 100 thóc nhé

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