Compter avec len
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 26 sur 32.
len(stars) indique le nombre d’éléments que contient la liste. Une liste vide a une longueur de 0. Utilise-la pour afficher un décompte :
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))Une f-string peut contenir n’importe quelle expression entre ses accolades, y compris un appel.
len peut aussi définir une limite. Ajoute une étoile uniquement s’il reste de la place :
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)Une fois que la liste contient 10 étoiles, la condition est fausse : les clics ne font donc rien. Le décompte à l’écran et la limite utilisent la même liste, ils concordent donc toujours.
La limite se trouve dans la boucle d’événements, reliée au test du clic par and : l’ajout ne s’exécute que si l’événement est un clic et qu’il reste de la place. len fonctionne aussi sur les chaînes : len("Night") vaut 5.
Défi
MoyenCompte les étoiles et arrête-toi à dix :
- Dans la partie de configuration, crée
font = pygame.font.Font(None, 36). - Dans la partie dessin, affiche
f"Stars: {len(stars)}"en(230, 230, 240)à (20, 20). - Ajoute une étoile lors d’un clic uniquement tant que
len(stars) < 10.
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Préparez les éléments ici, avant la boucle du jeu.
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)
# Modifiez les éléments ici, une fois par image.
screen.fill((20, 24, 48))
# Dessinez ici, après avoir rempli l’écran.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Toutes les leçons de Python dans une fenêtre de jeu
1Votre première fenêtre
Votre premier programmeAfficher un messageLes couleurs en nombresDessiner la Lune3Si et touches
Passer de l’autre côté du bordLes touches déplacent la luneElif et ElseEt, ouVrai ou faux6Des listes de choses
Une liste d’étoilesCliquer pour ajouterCompter avec lenSupprimer une étoileNombres aléatoiresEntraînez-vous par vous-même : Playground Pygame