Menu
CoddyTech

Inizio, fine e passo

Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 16 di 32.

range accetta fino a tre numeri: range(start, stop, step).

  • range(5): 0, 1, 2, 3, 4
  • range(2, 6): 2, 3, 4, 5
  • range(60, 200, 40): 60, 100, 140, 180

Inizia da start, aggiunge step ogni volta e si ferma prima di raggiungere stop. Il valore stop non è mai incluso nell’intervallo.

Con un valore iniziale e un passo, la variabile del ciclo può essere direttamente la posizione, senza bisogno di una somma:

for x in range(60, 600, 40):
    pygame.draw.circle(screen, (255, 160, 60), (x, 420), 8)

Per terminare una riga a 580, stop deve essere maggiore: range(60, 580, 40) termina a 540. Il passo può essere negativo per contare alla rovescia: range(10, 0, -2) corrisponde a 10, 8, 6, 4, 2.

challenge icon

Sfida

Facile

Sotto le stelle, disegna una fila di lanterne con un ciclo for:

  1. Cerchi arancioni (255, 160, 60) di raggio 8 a y 420.
  2. x da 60 a 580, ogni 40 pixel: 14 lanterne.
  3. Usa range con un inizio, una fine e un passo, e sostituisci la singola lanterna.

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.

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

    # Modifica le cose qui, una volta per fotogramma.

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    for i in range(8):
        pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)
    pygame.draw.circle(screen, (255, 160, 60), (60, 420), 8)

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

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame