Xây dựng và trực quan hóa trò chơi Sudoku bằng Pygame
Sudoku là một trò chơi giải đố sắp xếp số dựa trên logic, kết hợp. Mục tiêu là...
Category: Pygame
Pygame là một thư viện Python chuyên dụng để thiết kế và xây dựng trò chơi. Pygame chỉ hỗ trợ các trò chơi 2D được xây dựng bằng các hình dạng hoặc sprite khác nhau. Pygame không có thiết kế bố cục tích hợp hay bất kỳ hệ thống giao diện người dùng (UI) nào, nghĩa là không có cách nào dễ dàng để tạo giao diện người dùng (UI) hoặc màn chơi cho trò chơi. Cách duy nhất để tạo màn chơi hoặc các menu khác nhau trong Pygame là sử dụng các hàm.
Sử dụng các hàm như menu
Các hàm trong Pygame là một cách để chứa các menu hoặc cấp độ khác nhau bằng cách xác định loại sự kiện trong mỗi hàm, sau đó gọi các hàm từ hàm chứa tương ứng.
Ví dụ, hàm trò chơi sẽ được gọi nếu người chơi nhấn nút "Play" trên menu Bắt đầu. Vì vậy, hàm menu Bắt đầu sẽ trở thành hàm chứa cho hàm trò chơi. Điều quan trọng cần lưu ý là hàm bắt đầu không thể được gọi trực tiếp từ hàm trò chơi. Nếu trò chơi có nhiều cấp độ mở khóa khác nhau, thì cấp độ trước đó sẽ trở thành hàm chứa cho cấp độ tiếp theo.
Mã mẫu cho trò chơi có chứa menu bắt đầu
Chương trình Python để minh họa Menu và Cấp độ
import pygame
import sys
# khởi tạo pygame
pygame.init()
# độ phân giải màn hình
res = (720,720)
# mở cửa sổ game
screen = pygame.display.set_mode(res)
# màu trắng
color = (255,255,255)
# màu sáng của nút
color_light = (170,170,170)
# màu tối của nút
color_dark = (100,100,100)
# lưu chiều rộng của màn hình vào biến
width = screen.get_width()
# lưu chiều cao của màn hình vào biến
height = screen.get_height()
# định nghĩa font chữ
smallfont = pygame.font.SysFont('Corbel',35)
# tạo text hiển thị với font đã định nghĩa
text = smallfont.render('quit' , True , color)
while True:
for ev in pygame.event.get():
if ev.type == pygame.QUIT:
pygame.quit()
# kiểm tra nếu chuột được nhấn
if ev.type == pygame.MOUSEBUTTONDOWN:
# nếu chuột nhấn vào nút thì thoát game
if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40:
pygame.quit()
# tô màu nền cho màn hình
screen.fill((60,25,60))
# lấy tọa độ chuột và lưu vào biến dưới dạng tuple
mouse = pygame.mouse.get_pos()
# nếu chuột di chuyển vào nút thì đổi sang màu sáng hơn
if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40:
pygame.draw.rect(screen,color_light,[width/2,height/2,140,40])
else:
pygame.draw.rect(screen,color_dark,[width/2,height/2,140,40])
# vẽ chữ lên trên nút
screen.blit(text , (width/2+50,height/2))
# cập nhật khung hình trò chơi
pygame.display.update()
Đầu ra:
Published on Jul 28, 2025
Sudoku là một trò chơi giải đố sắp xếp số dựa trên logic, kết hợp. Mục tiêu là điền các chữ số vào lưới 9x9 sao cho mỗi cột, mỗi hàng và mỗi ô lưới....
Thuật toán như Tìm kiếm Nhị phân có thể được hiểu dễ dàng bằng cách trực quan hóa. Bài viết này trình bày một chương trình trực quan hóa Thuật toá...
Thuật toán sắp xếp chèn có thể dễ dàng được hiểu bằng cách trực quan hóa. Trong bài viết này, một chương trình trực quan hóa thuật toán sắp xếp ch...
Thuật toán sắp xếp Heap có thể được hiểu dễ dàng bằng cách trực quan hóa. Bài viết này trình bày một chương trình trực quan hóa Thuật toán sắp xếp...
Thuật toán như Tìm kiếm Tam phân có thể được hiểu dễ dàng bằng cách trực quan hóa. Bài viết này trình bày một chương trình trực quan hóa Thuật toá...
Trong bài viết này, chúng ta sẽ xem cách hình dung thuật toán sắp xếp nổi bọt (bubble sort ) bằng PyGame. Cụ thể, khi khởi động ứng dụng PyGame,....