Menu
CoddyTech

Đếm bằng len

Thuộc phần Python trong cửa sổ trò chơi trong hành trình Pygame của Coddy. Bài học 27 trên 33.

len(stars) cho biết danh sách chứa bao nhiêu phần tử. Danh sách rỗng có độ dài bằng 0. Hãy dùng nó để hiển thị số lượng:

text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))

Chuỗi f có thể chứa bất kỳ biểu thức nào trong dấu ngoặc nhọn, kể cả một lệnh gọi.

len cũng có thể đặt giới hạn. Chỉ thêm một ngôi sao khi vẫn còn chỗ:

if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
    stars.append(event.pos)

Khi danh sách có đủ 10 ngôi sao, điều kiện sẽ sai, nên các lần nhấp không làm gì cả. Số lượng trên màn hình và giới hạn đều đọc cùng một danh sách, vì vậy chúng luôn khớp nhau.

Giới hạn nằm trong vòng lặp sự kiện, kết hợp với điều kiện kiểm tra lần nhấp bằng and: lệnh append chỉ chạy khi sự kiện là một lần nhấp và vẫn còn chỗ. len cũng hoạt động với chuỗi: len("Night") bằng 5.

challenge icon

Thử thách

Trung bình

Đếm số ngôi sao và dừng ở mười.

  1. Trong phần thiết lập, đặt font = pygame.font.Font(None, 36).
  2. Trong phần vẽ, hiển thị f"Stars: {len(stars)}" bằng màu (230, 230, 240) tại (20, 20).
  3. Chỉ thêm một ngôi sao khi nhấp chuột nếu len(stars) < 10.

Nhấn Chơi và nhấp chuột 12 lần: số đếm dừng ở Stars: 10. Sau đó nhấn Kiểm tra.

Tự làm thử

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Thiết lập mọi thứ ở đây, trước vòng lặp trò chơi.
stars = []

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

    # Thay đổi mọi thứ ở đây, mỗi khung hình một lần.

    screen.fill((20, 24, 48))
    # Vẽ ở đây, sau khi tô nền.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tất cả bài học trong Python trong cửa sổ trò chơi

Tự luyện tập: Playground Pygame