Lezione 2: Se Else Affermazioni
In questa lezione, creerai un progetto in cui il robot VR abbatte almeno due castelli nel Dynamic Castle Crasher Playground. Sarà necessario un algoritmo per risolvere la sfida utilizzando loop e feedback del sensore perché il layout del parco giochi cambia ad ogni ripristino.
Esempi di layout dinamici di Castle Crasher Playground:

Risultati di apprendimento
- Identificare che un'istruzione if else esegue i comandi all'interno del ramo 'if' o 'else' in base al valore booleano riportato.
- Si noti che un'istruzione if else viene normalmente utilizzata con un ciclo for o un ciclo infinito while per verificare la condizione più di una volta.
- Identificare e descrivere il motivo per cui un'istruzione if else viene utilizzata con i loop.
- Descrivere cosa causerebbe l'esecuzione di un ramo "if" o "else" in un progetto con un'istruzione if else.
Perché utilizzare un'istruzione If Else?
La sfida Dynamic Castle Crasher è diversa dalla sfida Castle Crasher nell'Unità 2. La sfida dell'Unità 2 utilizzava semplici comandi di sequenziamento e Drivetrain per far cadere i castelli su un parco giochi statico.
def main():
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 1550, MM)
drivetrain.turn_for(RIGHT, 180, DEGREES)
drivetrain.drive_for(FORWARD, 700, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)Tuttavia, a causa dei cambiamenti nei layout del parco giochi Dynamic Castle Crasher, i comandi Drivetrain da soli non saranno sufficienti per far sì che il robot VR abbatta due o più castelli. Una serie di comandi Drivetrain può funzionare in un parco giochi, ma non in un altro. Sarà necessario un algoritmo che utilizzi sensori e selezione nelle iterazioni. L'istruzione if else verrà utilizzata per creare un algoritmo aggiungendo la selezione con le istruzioni condizionali a questo progetto.

L'istruzione If Else
L'istruzione if else è un'istruzione che accetta le condizioni booleane. L'istruzione if else è un'istruzione condizionale che controlla il flusso di un progetto. L'istruzione if else eseguirà una particolare sequenza di comandi se la condizione viene soddisfatta, altrimenti (quando la condizione non viene soddisfatta) viene eseguita un'altra serie di comandi, "ramificando" così il flusso del progetto. Verrà eseguito solo un ramo alla volta negli elenchi if else .
se condizione:
superato
altrimenti:
superato- Se la condizione viene riportata come True, vengono eseguiti i comandi all'interno del ramo "if".
- Se la condizione viene riportata come False, vengono eseguiti i comandi all'interno del ramo 'else'.
- Una volta eseguiti tutti i comandi all'interno di uno dei rami, il progetto passerà al comando successivo al di fuori dell'istruzione if else.
Probabilmente utilizzi spesso la logica if else nelle tue azioni quotidiane. Ad esempio, quando decidi cosa portare quando esci di casa in base alle condizioni meteorologiche esterne, puoi usare la logica if else Se piove, prendi un ombrello; altrimenti prendi gli occhiali da sole.
Il ramo "If" -
- In questo scenario, la condizione "piove", quindi verrebbe eseguita la diramazione "se" e si prenderebbe un ombrello.

La filiale "Else" -
- In questo scenario, la condizione di "pioggia" non è soddisfatta, quindi il ramo "altro" verrebbe eseguito e si prenderebbero gli occhiali da sole.

L'affermazione If Else e il problema dinamico del Castle Crasher
Ci sono due passaggi principali per il robot VR per abbattere con successo i castelli nel Dynamic Castle Crasher Playground. In sostanza, il robot VR deve essere in grado di localizzare e rilevare i castelli nel parco giochi e poi guidare per rovesciarli. In termini di un'istruzione if else , questo potrebbe essere formulato come:
- Se il robot VR rileva un castello, avanza verso di esso per rovesciarlo.

- Altrimenti, (quando il robot VR non rileva un castello), gira e cerca un castello in un'altra posizione nel parco giochi.

Il sensore di distanza sul robot VR può essere utilizzato per rilevare i castelli in questo parco giochi. A differenza di ogni altro parco giochi, il Dynamic Castle Crasher Playground non ha pareti. Poiché i castelli sono gli unici oggetti nel Dynamic Castle Crasher Playground, quando il sensore di distanza rileva un oggetto, quell' oggetto sarà un castello. Il robot VR dovrà controllare ripetutamente le condizioni del sensore di distanza, in modo che una volta completati questi due passaggi di base, il robot VR possa tornare indietro e utilizzare il sensore di distanza per trovare il castello successivo da rovesciare.
Pianificazione di un progetto con la dichiarazione If Else
- Avvia un nuovo progetto e seleziona il parco giochi dinamico Castle Crasher quando richiesto.

- Denominare il progetto Unit9Lesson2.

-
Aggiungere commenti nell'area di lavoro che delineano l'intenzione per il progetto, in base ai passaggi sopra identificati. Il primo commento spiega la condizione dell'istruzione if else e i due successivi spiegano le azioni di ciascun ramo dell'istruzione if else. Ricorda che i commenti Python iniziano con un simbolo # (libbra). Il tuo progetto dovrebbe essere simile a questo:
def main(): # Il sensore di distanza rileva un castello? # Castello in caso di incidente rilevato da un sensore di distanza # Gira per trovare un castello utilizzando il sensore di distanza -
Un'istruzione if else può essere utilizzata per attivare ciascuna delle azioni sopra descritte. Ogni azione dipende dal fatto che la condizione booleana nell'istruzione if else sia True o False. Aggiungere un'istruzione if else dopo i commenti. Il tuo progetto dovrebbe assomigliare a questo:
def main(): # Il sensore di distanza rileva un castello? # Castello di schianto rilevato da un sensore di distanza # Gira per trovare un castello usando il sensore di distanza se la condizione: passa altrimenti: passa -
Ogni ramo dell'istruzione if else può essere definito utilizzando i commenti. Se il sensore di distanza rileva un castello, il robot VR dovrebbe guidare per rovesciare il castello; altrimenti dovrebbe girare per rilevare un castello. Spostare i rami if e else del progetto per allinearli con i commenti che descrivono le azioni associate. Il tuo progetto dovrebbe assomigliare a questo:
def main(): # Il sensore di distanza rileva un castello? if condition: # Castello di schianto rilevato da un sensore di distanza pass else: # Girare per trovare un castello utilizzando il sensore di distanza pass
Selezionare il pulsante Avanti per continuare con il resto della lezione.