Menu
CoddyTech

Cuenta con len

Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 26 de 32.

len(stars) indica cuántos elementos contiene la lista. Una lista vacía tiene una longitud de 0. Úsalo para mostrar un recuento:

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

Una f-string puede contener cualquier expresión entre sus llaves, incluso una llamada.

len también puede establecer un límite. Añade una estrella solo mientras haya espacio:

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

Cuando la lista contiene 10 estrellas, la condición es falsa, así que los clics no hacen nada. El recuento en pantalla y el límite consultan la misma lista, así que siempre coinciden.

El límite está en el bucle de eventos, unido a la comprobación del clic con and: la operación de añadir solo se ejecuta cuando el evento es un clic y hay espacio. len también funciona con cadenas: len("Night") es 5.

challenge icon

Desafío

Intermedio

Cuenta las estrellas y detente al llegar a diez:

  1. En la parte de configuración, crea font = pygame.font.Font(None, 36).
  2. En la parte de dibujo, muestra f"Stars: {len(stars)}" en (230, 230, 240) en (20, 20).
  3. Añade una estrella al hacer clic solo mientras len(stars) < 10.

Pruébalo tú mismo

import pygame

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

# Prepara todo aquí, antes del bucle del juego.
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 las cosas aquí, una vez por fotograma.

    screen.fill((20, 24, 48))
    # Dibuja aquí, después de rellenar la pantalla.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

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

pygame.quit()

Todas las lecciones de Python en una ventana de juego

Practica por tu cuenta: Playground de Pygame