Presentation is loading. Please wait.

Presentation is loading. Please wait.

Counted (For) Loops in Alice

Similar presentations


Presentation on theme: "Counted (For) Loops in Alice"— Presentation transcript:

1 Counted (For) Loops in Alice
Stephen Cooper Wanda Dann Randy Pausch Barb Ericson July 2009 04-ForLoopsInAlice

2 Learning Goals Introduce the concept of a counted loop
A loop that keeps a counter or index Show how a loop leads to easier to read and shorter code Show an infinite for loop Show a nested loop Show a function call inside a loop 04-ForLoopsInAlice

3 Repetition In many kinds of animations, especially simulations and games, some actions happen again and again. Example: Gallery games where targets appear randomly on screen and then disappear only to appear elsewhere in the scene. Of course, actions are made to happen again and again by running an animation instruction (or a method) more than once 04-ForLoopsInAlice

4 Example A bunny sneaks into a garden and wants to eat the broccoli. The bunny will need to hop several times to get to the broccoli. 04-ForLoopsInAlice

5 bunny.hop 04-ForLoopsInAlice

6 One solution Creating the same instruction again and again is somewhat tedious and the code gets longer and longer. 04-ForLoopsInAlice

7 Counted Loop A counted loop is an alternate way to write repetitive code Repeats instructions a counted number of times 04-ForLoopsInAlice

8 Demo BunnyHop Concepts illustrated in this example
The loop instruction executes a definite number of times, specified by a count or index Using a loop instruction saves time is convenient 04-ForLoopsInAlice

9 Demo Carouselinfinity
Concept illustrated in this example If “Infinity times” is selected for a loop, this means the loop will run until the program is shut down This is an infinite loop 04-ForLoopsInAlice

10 More complicated loops
It is also possible to place a loop statement within another loop statement This is called a nested loop 04-ForLoopsInAlice

11 An example of nested loops
The whole Ferris wheel will rotate clockwise, while the two inner wheels will rotate counterclockwise. The inner wheels should perform 2 revolutions for each outer loop revolution. 04-ForLoopsInAlice

12 Demo FerrisWheel Concept illustrated in this example
The inner loop runs completely each time the outer loop runs once. An outer loop that executes 2 times and an inner loop that executes 5 times will actually execute the inner loop 10 times. In an animation, opposite actions that occur simultaneously effectively cancel each other out in terms of the rendered action. To demonstrate, set the outer loop to 1 time and the inner loop to 2 times. The inner wheel will look as though it rotates only once. As another example, you would see the same kind of result if you try to turn a person's head left and right ¼ revolution at the same time. 04-ForLoopsInAlice

13 Using a function A loop count can be computed by calling a function that returns a number value. The loop instruction automatically rounds the returned value to the nearest whole number. Demo: LoopWithFunctionCall 04-ForLoopsInAlice

14 Challenges And have the bunny hop in a square using a nested loop
Copy BunnyHop So that as the bunny nears the broccoli Papa rabbit (use Hare from the Animals folder) appears at the garden gateway and taps his foot Have the bunny turn and hop out of the garden Using a loop Copy BunnyHop And have the bunny hop in a square using a nested loop Loop 4 times Loop 3 times Bunny hop Bunny turn ¼ revolution 04-ForLoopsInAlice

15 Summary A for loop is similar to a while loop
But is useful when you need a counter or index in the loop An infinite loop never stops Loops can be nested inside of other loops You can call a function inside the test for a loop 04-ForLoopsInAlice


Download ppt "Counted (For) Loops in Alice"

Similar presentations


Ads by Google