Lezione 4: Utilizzo dei cicli nidificati
Nella lezione precedente, hai creato un progetto per istruire il robot VR a guidare, raccogliere e spostare tutti e tre i dischi blu nel Disk Mover Playground nell'obiettivo blu. In questa lezione, creerai un progetto per raccogliere e spostare un disco di ciascun colore nel suo corrispondente obiettivo colorato nel Disk Mover Playground utilizzando loop nidificati!

Risultati di apprendimento
- Identifica come nidificare i loop.
- Descrivere il flusso di un progetto attraverso cicli nidificati.
- Spiegare perché i cicli nidificati verrebbero utilizzati in un progetto.
Cosa sono i Nested Loop?
Nelle unità e lezioni precedenti di questo corso hai utilizzato cicli della categoria Controllo, come il ciclo for , il ciclo while e i cicli infiniti while per ripetere i comportamenti. Il posizionamento di un ciclo all'interno di un altro ciclo è chiamato "nidificazione". I loop nidificati sono utili nei progetti in cui un robot VR ripete gli stessi comportamenti più di una volta, ad esempio per spostare più dischi nel parco giochi. I cicli di annidamento possono organizzare e condensare un progetto, per renderlo più facilmente comprensibile. Questo può essere utile per comprendere meglio il contesto e lo scopo del codice, oltre a facilitare l'identificazione degli errori e la risoluzione dei problemi di un progetto.
Ad esempio, per spostare tutti e tre i dischi blu verso l'obiettivo blu, è possibile utilizzare un ciclo per per ripetere più volte il processo di raccolta di un disco. Il progetto mostrato qui posiziona il progetto della Lezione 3 per spostare il primo disco blu verso l'obiettivo blu all'interno di un ciclo per , con il parametro impostato su 3. Notare come le quattro sezioni del progetto precedente siano rientrate nel ciclo per.
def main():
per repeat_count nell'intervallo(3):
#1. Drive al primo disco
mentre non è down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Prendi il magnete del disco
.Energizza (BOOST)
# 3. Guidare fino all'obiettivo
drivetrain.turn_to_heading(180, GRADI)
mentre front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. Rilasciare il disco nell'obiettivo magnet.energize
(DROP) drivetrain.drive_for
(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGREES)
wait(5, MSEC)Quando si 'annidano' i loop, il loop esterno controlla il numero di volte in cui viene eseguito il loop interno. In questo progetto, il loop per è il loop esterno e ripeterà i comportamenti nel loop tre volte.
I loop interni sono quei loop contenuti all'interno del loop esterno. In questo esempio, ciascuno dei cicli while (per raggiungere il disco e l'obiettivo) sono 'cicli interni' che vengono eseguiti ogni volta che il progetto attraversa il ciclo for .
Per tua informazione
L'indentazione è importante nei progetti Python VEXcode VR. È possibile utilizzare le linee grigie dell'indicatore nell'area di lavoro come aiuto visivo durante i cicli di nidificazione, per garantire che il progetto funzioni come previsto. Ogni riga indica l'inizio e la fine di un ciclo.

Flusso di un progetto di loop nidificato
In questo esempio, ogni volta che si ripete il ciclo per , viene preso un disco blu e riportato all'obiettivo blu.
Dopo la prima iterazione, il primo disco blu viene riportato all'obiettivo blu e il robot VR viene ruotato per essere pronto a raccogliere il secondo disco.
Dopo la seconda iterazione, il secondo disco blu viene raccolto e il robot VR viene ruotato per essere pronto a raccogliere il terzo disco.
Dopo la terza iterazione, viene raccolto il terzo disco blu e il robot VR smette di muoversi. Il ciclo per ha ora completato il suo intervallo, quindi il progetto è completato.

Selezionare il pulsante Avanti per continuare con il resto della lezione.