Fall 2009 ACS-1805 Ron McFadyen 1
Ch 7 Loops
• Alice has two control structures for controlling the repeated execution of statements• Loop• While
Fall 2009 ACS-1805 Ron McFadyen 2
Loop
A definite loop is executed a specified number of times (also referred to as a counted loop)
Also discussed back in Ch 3
• Text: 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.
Fall 2009 ACS-1805 Ron McFadyen 3
Flowchart for Loop
index < limit? Loop action(s)
false
true
Loop action(s) executed as an index variable•starts at some initial value•is incremented by some increment before a next iteration•goes up to some limit
Set index to initial value
Increment index
Fall 2009 ACS-1805 Ron McFadyen 4
bunny.hop
Fall 2009 ACS-1805 Ron McFadyen 5
bunny.hop
vs
• Less code
• More flexible
• Easier to comprehend
Fall 2009 ACS-1805 Ron McFadyen 6
Infinite Loop
• In an animation we may want for some activity to never stop, unless the world stops playing
Fall 2009 ACS-1805 Ron McFadyen 7
Nested Loops
• Each time the ferris wheel makes a revolution the smaller wheels must turn too
• The inner loop is executed twice (in this example) for each iteration of the outer loop
FerrisWheel.a2w
Fall 2009 ACS-1805 Ron McFadyen 8
While
A while loop is executed as long as some condition is true – also called a conditional loop or indefinite loop)
Used in situations where we don’t know how many times a loop should execute, but we do know the condition for it to execute.
Generally, we expect a while to terminate when something in the world causes the expression to be false. However, it could be coded such that it executes forever… an infinite loop
Fall 2009 ACS-1805 Ron McFadyen 9
While
Fall 2009 ACS-1805 Ron McFadyen 10
Text Example• The Shark/Goldfish Chase Scene.
Fall 2009 ACS-1805 Ron McFadyen 11
Problem
• The problem is how do we get the shark to chase the goldfish in a chase-like action?
• The shark should not immediately catch the goldfish (otherwise, there would be no chase).
• The goldfish (assuming self-preservation instincts) should appear to be fleeing.
Fall 2009 ACS-1805 Ron McFadyen 12
Solution
• To create a chase scene,
• At the same time, the shark will swim a short distance toward the fish and the fish will swim a short distance away from the shark.
• The fish will flee.
• As long as the goldfish is still 0.5 meters away from the shark, repeat the actions.
Fall 2009 ACS-1805 Ron McFadyen 13
Storyboard
chase
While the goldfish is more than 0.5 meters away from the shark Do in order shark point at the goldfish Do together shark swim (toward the goldfish) goldfish flee (away from the shark)shark eat (the goldfish)
Complex actions – become procedures themselves
Fall 2009 ACS-1805 Ron McFadyen 14
chase
While the goldfish is more than 0.5 meters from the shark Do in order Point the shark at the goldfish Do together shark swim goldfish flee shark eat (goldfish)
swim
tDo in order urn torso left and move forward turn torso right and move forward turn torso left and move forward
flee
Do together
wiggle tail move to random location
Eat
Parameter: whatDo in order shark points at what shark opens jaw and what disappears shark closes jaw
SharkGoldfishChase.a2w
Top Related