fall 2009acs-1805 ron mcfadyen1 ch 7 loops alice has two control structures for controlling the...

14
Fall 2009 ACS-1805 Ron McFadyen 1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop • While

Upload: rosa-oconnor

Post on 16-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

Fall 2009 ACS-1805 Ron McFadyen 1

Ch 7 Loops

• Alice has two control structures for controlling the repeated execution of statements• Loop• While

Page 2: Fall 2009ACS-1805 Ron McFadyen1 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.

Page 3: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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

Page 4: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

Fall 2009 ACS-1805 Ron McFadyen 4

bunny.hop

Page 5: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

Fall 2009 ACS-1805 Ron McFadyen 5

bunny.hop

vs

• Less code

• More flexible

• Easier to comprehend

Page 6: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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

Page 7: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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

Page 8: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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

Page 9: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

Fall 2009 ACS-1805 Ron McFadyen 9

While

Page 10: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

Fall 2009 ACS-1805 Ron McFadyen 10

Text Example• The Shark/Goldfish Chase Scene.

Page 11: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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.

Page 12: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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.

Page 13: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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

Page 14: Fall 2009ACS-1805 Ron McFadyen1 Ch 7 Loops Alice has two control structures for controlling the repeated execution of statements Loop While

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