Menu
CoddyTech

Ripetere con for

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

Un ciclo for ripete le sue righe una volta per ogni valore che riceve:

for i in range(8):
    pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)

range(8) fornisce i numeri 0, 1, 2 e così via fino a 7: otto numeri, partendo da 0 e fermandosi prima di 8. Il ciclo memorizza ogni numero a turno in i ed esegue le righe rientrate. Così la prima stella si trova a x 40, la successiva a 120, poi 200, fino a 600.

Le righe rientrate costituiscono il corpo del ciclo, come nel caso di un if. La prima riga dopo il corpo, al rientro esterno, viene eseguita quando il ciclo è terminato.

Questo ciclo si trova nella parte di disegno del ciclo di gioco, quindi tutte e otto le stelle vengono disegnate di nuovo a ogni fotogramma. È breve e termina subito, così il fotogramma finisce comunque in tempo.

i è un nome comune per una variabile contatore, ma va bene qualsiasi nome: for n in range(8): conta allo stesso modo.

challenge icon

Sfida

Facile

Sostituisci la singola stella con un ciclo for su range(8) che disegna 8 stelle bianche di raggio 5 in (40 + i * 80, 80).

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 gli elementi qui, a ogni fotogramma.

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)

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

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame