Hướng dẫn cách code game Python đơn giản với rắn săn mồi

10/03/2025
Hướng dẫn cách code game Python đơn giản với rắn săn mồi

Python là một ngôn ngữ lập trình linh hoạt và dễ dàng cho người mới bắt đầu. Nếu bạn muốn lắp trình một tựa game đơn giản, trò chơi rắn săn mồi là một lựa chọn hoàn hảo. Bài viết này sẽ hướng dẫn bạn cách code game Python đơn giản từ a đến z.

1. Khám phá nguyên lý và cách hoạt động của game rắn săn mồi

Trước khi bắt tay vào code game Python đơn giản với trò chơi rắn săn mồi, chúng ta cần hiểu rõ nguyên lý hoạt động của trò chơi này. Ban đầu, màn hình hiển thị một con rắn có kích thước nhỏ di chuyển trên nền game. Mục tiêu của người chơi là điều khiển rắn săn mồi, và mỗi lần ăn được mồi, rắn sẽ dài thêm. Tuy nhiên, nếu rắn tự cắn vào đuôi hoặc va vào biên, trò chơi sẽ kết thúc.

Hướng dẫn cách code game Python đơn giản với rắn săn mồi

2. Hướng dẫn code game Python đơn giản với rắn săn mồi dành cho người mới bắt đầu

Dưới đây là hướng dẫn cách code game Python đơn giản với rắn săn mồi thông qua các bước cụ thể, giúp bạn nắm vững cách lập trình trò chơi này từ cơ bản đến nâng cao:

Bước 1: Cài đặt thư viện Pygame - Bước đầu chinh phục lập trình game

Để bắt đầu, bạn cần cài đặt thư viện Pygame, công cụ hỗ trợ mạnh mẽ trong việc phát triển trò chơi với Python. Bạn có thể cài đặt bằng lệnh sau trong terminal hoặc command prompt: pip install pygame. Hoặc truy cập pygame.org/download.shtml để tải về phiên bản phù hợp với hệ điều hành của bạn.

Bước 2: Tạo màn hình game

Màn hình trò chơi là nền tảng quan trọng để hiển thị mọi thành phần trong game. Bạn cần sử dụng pygame.display.set_mode() để thiết lập kích thước màn hình và đặt tiêu đề trò chơi với pygame.display.set_caption().

import pygame

pygame.init()

dis = pygame.display.set_mode((600, 400))

pygame.display.set_caption('Game rắn săn mồi')

game_over = False

while not game_over:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            game_over = True

pygame.quit()

Bước 3: Thiết kế và vẽ rắn trong trò chơi

Con rắn là nhân vật chính trong trò chơi, được tạo thành từ các khối vuông nhỏ liên kết với nhau. Trước tiên, chúng ta cần xác định các biến màu để phân biệt rắn, con mồi và nền game. Trong Pygame, màu sắc được biểu diễn bằng mã RGB (Red, Green, Blue), ví dụ như màu trắng (255, 255, 255) hoặc màu đen (0, 0, 0).

Hướng dẫn cách code game Python đơn giản với rắn săn mồi

Để vẽ con rắn, ta sử dụng hàm pygame.draw.rect(), xác định vị trí và kích thước của từng đoạn thân rắn. Con rắn sẽ di chuyển theo hướng do người chơi điều khiển.

snake_block = 10

snake_list = []

snake_length = 1

def draw_snake(snake_block, snake_list):

    for segment in snake_list:

        pygame.draw.rect(dis, (0, 255, 0), [segment[0], segment[1], snake_block, snake_block])

Bước 4: Xử lý chuyển động của rắn

Rắn di chuyển dựa vào các phím mũi tên K_UP, K_DOWN, K_LEFT, K_RIGHT. Khi một phím được nhấn, hướng di chuyển của rắn sẽ thay đổi.

x_change = 0

y_change = 0

def move_snake(event):

    global x_change, y_change

    if event.type == pygame.KEYDOWN:

        if event.key == pygame.K_LEFT:

            x_change = -snake_block

            y_change = 0

        elif event.key == pygame.K_RIGHT:

            x_change = snake_block

            y_change = 0

        elif event.key == pygame.K_UP:

            x_change = 0

            y_change = -snake_block

        elif event.key == pygame.K_DOWN:

            x_change = 0

            y_change = snake_block

Bước 5: Xử lý sự kiện game over

Khi rắn đâm vào biên, trò chơi sẽ kết thúc. Điều này được kiểm tra bằng cách so sánh tọa độ đầu rắn với giới hạn màn hình.

if x_head >= 600 or x_head < 0 or y_head >= 400 or y_head < 0:

    game_over = True

Bước 6: Thêm con mồi vào trò chơi

Con mồi xuất hiện ngẫu nhiên trên màn hình và sẽ biến mất khi rắn ăn trúng. Để thực hiện điều này, chúng ta sử dụng thư viện random để tạo ra vị trí ngẫu nhiên cho con mồi.

import random

foodx = round(random.randrange(0, 600 - snake_block) / 10.0) * 10.0

foody = round(random.randrange(0, 400 - snake_block) / 10.0) * 10.0

pygame.draw.rect(dis, (255, 0, 0), [foodx, foody, snake_block, snake_block])

Khi rắn ăn mồi, một thông báo như "Yummy!!" có thể xuất hiện để tạo hiệu ứng sinh động hơn.

Bước 7: Cơ chế tăng độ dài của rắn khi ăn mồi

Mỗi khi rắn ăn mồi, nó sẽ dài thêm một đoạn. Điều này được thực hiện bằng cách lưu trữ tọa độ của rắn trong danh sách snake_list, sau đó cập nhật chiều dài của rắn khi ăn mồi thành công.

if x_head == foodx and y_head == foody:

    snake_length += 1

    foodx = round(random.randrange(0, 600 - snake_block) / 10.0) * 10.0

    foody = round(random.randrange(0, 400 - snake_block) / 10.0) * 10.0

Nếu rắn va chạm vào thân của chính nó, trò chơi sẽ kết thúc, hiển thị thông báo thua cuộc và cho phép người chơi nhấn Q để thoát hoặc C để chơi lại.

Bước 8: Hiển thị điểm số

Số điểm của người chơi được tính bằng độ dài của rắn trừ đi giá trị khởi đầu. Dưới đây là đoạn code hiển thị điểm số lên màn hình:

def show_score(score):

    font = pygame.font.SysFont("Arial", 30)

    score_text = font.render("Điểm: " + str(score), True, (0, 0, 0))

    dis.blit(score_text, [10, 10])

Bước 9: Xử lý va chạm rắn cắn vào thân

Nếu đầu rắn chạm vào bất kỳ phần nào của cơ thể nó, trò chơi sẽ kết thúc.

for segment in snake_list[:-1]:

    if segment == [x_head, y_head]:

        game_over = True

Bước 10: Thông báo khi thua game

Khi trò chơi kết thúc, một thông báo sẽ hiển thị lên màn hình, yêu cầu người chơi nhấn Q để thoát hoặc C để chơi lại.

arialFont = pygame.font.SysFont("Arial", 30)

def message(msg, color):

    mesg = arialFont.render(msg, True, color)

    dis.blit(mesg, [200, 200])

Trò chơi rắn săn mồi là một bài tập hoàn hảo để thực hành code game Python đơn giản. Từ việc khởi tạo màn hình, tạo rắn, thêm con mồi cho đến xử lý sự kiện và hiển thị điểm số, bạn đã có một nền tảng vững chắc để tiếp tục phát triển các game phức tạp hơn. Hãy thử mở rộng trò chơi bằng cách thêm âm thanh, hiệu ứng hình ảnh hoặc bảng xếp hạng điểm số.

Viết bình luận của bạn: