Presentation on theme: "Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While."— Presentation transcript:
Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While
Fall 2009ACS-1805 Ron McFadyen2 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 2009ACS-1805 Ron McFadyen3 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 2009ACS-1805 Ron McFadyen4 bunny.hop
Fall 2009ACS-1805 Ron McFadyen5 bunny.hop vs Less code More flexible Easier to comprehend
Fall 2009ACS-1805 Ron McFadyen6 Infinite Loop In an animation we may want for some activity to never stop, unless the world stops playing
Fall 2009ACS-1805 Ron McFadyen7 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 2009ACS-1805 Ron McFadyen8 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 2009ACS-1805 Ron McFadyen9 While
Fall 2009ACS-1805 Ron McFadyen10 Text Example The Shark/Goldfish Chase Scene.
Fall 2009ACS-1805 Ron McFadyen11 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 2009ACS-1805 Ron McFadyen12 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 2009ACS-1805 Ron McFadyen13 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 2009ACS-1805 Ron McFadyen14 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: what Do in order shark points at what shark opens jaw and what disappears shark closes jaw SharkGoldfishChase.a2w