Conta con len
Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 26 di 32.
len(stars) indica quanti elementi contiene la lista. Una lista vuota ha lunghezza 0. Usala per mostrare un conteggio:
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))Una f-string può contenere qualsiasi espressione tra parentesi graffe, comprese le chiamate.
len può anche impostare un limite. Aggiungi una stella solo quando c'è spazio:
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)Quando la lista contiene 10 stelle, la condizione è falsa, quindi i clic non fanno nulla. Il conteggio sullo schermo e il limite leggono la stessa lista, quindi sono sempre coerenti.
Il limite si trova nel ciclo degli eventi, collegato al controllo del clic con and: l'aggiunta viene eseguita solo quando l'evento è un clic e c'è spazio. len funziona anche sulle stringhe: len("Night") è 5.
Sfida
MedioConta le stelle e fermati a dieci:
- Nella parte di configurazione, imposta
font = pygame.font.Font(None, 36). - Nella parte di disegno, mostra
f"Stars: {len(stars)}"in(230, 230, 240)in (20, 20). - Aggiungi una stella al clic solo finché
len(stars) < 10.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Prepara tutto qui, prima del ciclo di gioco.
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)
# Modifica gli elementi qui, una volta per fotogramma.
screen.fill((20, 24, 48))
# Disegna qui, dopo aver riempito lo schermo.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tutte le lezioni di Python in una finestra di gioco
6Liste di elementi
Una lista di stelleClicca per aggiungereConta con lenRimuovi una stellaNumeri casualiEsercitati da solo: Playground Pygame