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 bộ mô-đun Python miễn phí và mã nguồn mở. Đúng như tên gọi, nó có thể được sử dụng để xây dựng trò chơi. Bạn có thể mã hóa trò chơi và sau đó sử dụng các lệnh cụ thể để chuyển đổi nó thành tệp thực thi để chia sẻ với bạn bè và cho họ thấy công việc bạn đã làm. PyGame bao gồm các thư viện đồ họa máy tính và âm thanh được thiết kế để sử dụng với ngôn ngữ lập trình Python. PyGame 2.0.1 là phiên bản mới nhất tại thời điểm viết bài này.
Theo mặc định, Python không tích hợp sẵn PyGame dưới dạng thư viện. Vì vậy, chúng ta phải cài đặt nó bằng dấu nhắc lệnh. Mở dấu nhắc lệnh và nhập lệnh sau:
pip cài đặt pygame
Nếu bạn đã cài đặt PyGame, hãy sử dụng lệnh sau để kiểm tra phiên bản:
pip show pygame
Nếu Pygame của bạn chưa được cập nhật lên phiên bản mới nhất, hãy sử dụng lệnh sau:
pip cài đặt pygame --nâng cấp
Nếu lệnh này hiển thị lỗi ModuleNotFoundError thì rõ ràng là pygame chưa được cài đặt.
Chức năng được sử dụng:
pygame.init(): Lệnh này được sử dụng để khởi tạo mô-đun pygame.
pygame.display.set_mode((500,500)): Lệnh này được sử dụng để tạo một cửa sổ có kích thước mong muốn (chiều rộng, chiều cao). Giá trị trả về là một Đối tượng Bề mặt, là đối tượng mà chúng ta thực hiện các thao tác đồ họa khác nhau.
pygame.display.set_caption(title = ""): Lệnh này được sử dụng để đặt tiêu đề cho cửa sổ/bảng.
pygame.event.get(): Hàm này được dùng để xóa hàng đợi sự kiện. Nếu không gọi hàm này, các thông báo cửa sổ sẽ bắt đầu chồng chất và hệ điều hành sẽ cho rằng trò chơi không phản hồi.
pygame.QUIT: Được sử dụng để chấm dứt sự kiện khi chúng ta nhấp vào nút đóng ở góc cửa sổ.
import pygame
pygame.init()
# CREATING CANVAS
canvas = pygame.display.set_mode((500, 500))
# TITLE OF CANVAS
pygame.display.set_caption("My Board")
exit = False
while not exit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.display.update()
Đầu ra:
Blitting là quá trình render đối tượng trò chơi lên bề mặt. Khi tạo đối tượng trò chơi, chúng ta nên render nó. Nếu không render, đối tượng sẽ hiển thị cửa sổ đen. Trong pygame, có một cách để thực hiện quá trình blitting này, đó là dùng hàm blit().
Đây là một trong những thao tác chậm nhất trong bất kỳ trò chơi nào, vì vậy chúng ta cần phải cẩn thận khi sử dụng vì không nên để quá nhiều thứ xuất hiện trên màn hình trong mỗi khung hình.
Cú pháp: blit(src, dest)
src: Đây là nguồn của hình ảnh mà chúng ta muốn hiển thị trên màn hình
dest: Đây là tọa độ mà chúng ta muốn hình ảnh của mình được hiển thị.
Mã số:
import pygame
pygame.init()
color = (255,255,255)
position = (0,0)
# CREATING CANVAS
canvas = pygame.display.set_mode((500,500))
# TITLE OF CANVAS
pygame.display.set_caption("Show Image")
image = pygame.image.load("Screenshot.png")
exit = False
while not exit:
canvas.fill(color)
canvas.blit(image, dest = position)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.display.update()
Đầu ra:
Trong Pygame, chúng ta sử dụng phương thức rect() để vẽ các ô hình chữ nhật trên cửa sổ. Pygame sử dụng các đối tượng Rect để lưu trữ và thao tác các vùng hình chữ nhật. Vùng hình chữ nhật có thể được tạo thành bằng cách kết hợp các giá trị left (trái), top (trên), width (rộng) và height (cao).
import pygame
pygame.init()
color = (255,255,255)
rect_color = (255,0,0)
# CREATING CANVAS
canvas = pygame.display.set_mode((500,500))
# TITLE OF CANVAS
pygame.display.set_caption("Show Image")
image = pygame.image.load("Screenshot.png")
exit = False
while not exit:
canvas.fill(color)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.draw.rect(canvas, rect_color,
pygame.Rect(30,30,60,60))
pygame.display.update()
Đầu ra:
Published on Jul 25, 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,....