Your Turn!
Now it’s your turn. Download this document for a recap of the blocks we covered in this lesson and some hands-on exercises for you to explore.
What You Have Learned in This Lesson
Parallelism
In this unit, you learned about parallelism. In Snap!, you can have multiple sprites that run scripts at the same time. With buttons in the sprite corral, you can add new turtle sprites, draw additional sprites or create new sprites with a picture from your webcam as a costume. Or you can duplicate your existing sprite by right-clicking it and select "duplicate" from its context menu. This will also copy all the existing scripts and costumes of the sprite you’re creating the duplicate from.

Additionally, you can run scripts simultaneously within one sprite, e.g. when scripts are triggered by the same hat block or when several scripts in a sprite contain a forever loop.

User Interaction
You also learned that you can execute scripts based on a user’s input for example from the keyboard or the mouse. Snap! provides hat blocks that trigger the scripts below them on user action, like when (key) key pressed. There are predicates and reporters that report the mouse’s position or whether it is currently pressed. If you are interested in more user interaction, check out the "Sensing" category.

Conditionals
Moreover, you learned how to use conditionals – blocks that execute parts of your program based on a condition.
Snap! has two types of conditionals, if _ and if_ else_. The blocks inside their c-shaped slot are executed depending on the condition that is used as an input to the hexagonal input slot. The condition in the hexagonal slot reports either trueor false, so-called Boolean values.

What we didn’t show you but might be helpful anyway is the following:
You can expand the ifblock to add more conditions. Clicking on the small arrowhead at the bottom of the ifblock will add an else if_ section to it.

These conditions are evaluated from top to bottom and for the first one that is true, the corresponding blocks are executed. Not adding a specific condition to one of the Boolean input slots will make it work like the regular elsein the if else block. The blocks enclosed in that part will be executed, if none of the conditions above are true.
If you want to use several conditions, make sure that you have them in the right order.
In the following example you e.g. must start with the shortest distance, because distance to target < 100 will also report true, if the distance is smaller than 50 and 10. Therefore, the other parts of that conditional wouldn’t be evaluated as soon as the distance to target is smaller than 100.
