cs320n –visual programming indefinite loops (slides 7-2) thanks to wanda dann, steve cooper, and...
TRANSCRIPT
CS320n –Visual Programming
Indefinite Loops
(Slides 7-2)
Thanks to Wanda Dann, Steve Cooper, and Susan Rodger for slide ideas.
Visual Programming Indefinite Loops 2
What We Will Do Today• Learn about indefinite loops (while)
• Learn about event loops
• Look at a case study involving loops
Visual Programming Indefinite Loops 3
Repetition• Sometimes don’t know or can’t computer exactly
how many times a set of instructions are repeated
• Stopping is based on some condition (a boolean)
• Examples:– Game of Chess, how many moves until win
• Stop: when markers are in a check mate position
– The bunny world. Bunny two jump up and down until Bunny one done eating.
• Actually could roughly calculate this based on distances
Visual Programming Indefinite Loops 4
Indefinite Repetition• In programs where a count of repetitions is not
known (indefinite), we can use one of two repetition control mechanisms:– While statement (today)– Recursion (next time)
Visual Programming Indefinite Loops 5
While statement
• While some condition is true– execute statements 1 time, go and recheck condition
• To write a While statement, you need to know the condition that determines whether the loop will be repeated.
Visual Programming Indefinite Loops 6
Example• In the garden scene from last time
• bunny one went around and ate up the food
• bunny two hopped in place forever
• what if we want bunny two to hop until bunny one is done eating all the food?– in other words we want bunny two to hop
while what is true?
Visual Programming Indefinite Loops 7
Original Version
Visual Programming Indefinite Loops 8
Change to Garden World• What condition can we check to determine
if bunny two should hop again or stop?
Visual Programming Indefinite Loops 9
Example Two• A chase scene• hungry shark chasing
fleeing goldfish– repeat: fish swim away
from shark and shark swim toward fish
– shark swim distance a little more than fish swim distance
– eventually shark will catch up with fish
Visual Programming Indefinite Loops 10
Storyboard• World.chase
while goldfish more than 0.5 meters from shark
Do in order
shark point at goldfish
Do together
shark swim (toward goldfish)
goldfish flee (away from shark)
resolve chase (shark eat goldfish or goldfish eat shark)
Visual Programming Indefinite Loops 11
World.chase
methods to be written: top down design
Visual Programming Indefinite Loops 12
Will the loop end?• What does it depend on?
Visual Programming Indefinite Loops 13
Ending the Loop• Assume the goldfish and the shark
move a random distance– make the shark move forward between
0.1 and 0.6 meters– make the goldfish move between 0.0 and
0.3 meters– Shark will eventually catch up, and the
loop will end.– not sure how many steps it will take, but
the shark will eventually catch the goldfish
Visual Programming Indefinite Loops 14
goldfish.flee
Visual Programming Indefinite Loops 15
goldfish.random Motion
Will the goldfish ever move backwards?How could the random motion be made more realistic?
Visual Programming Indefinite Loops 16
Shark.swim• Shark pointed in correct direction• move random distance
Visual Programming Indefinite Loops 17
The loop will end– Geometrically, the fish can never move more
than 0.52 meters away• the distance formula
– The shark has a distance advantage and will eventually catch up. The loop will end.
0.30.3
0.3
0.52
Visual Programming Indefinite Loops 18
General “Rule of Thumb” • As a general rule, a While loop should be
written so the loop will eventually end. – Requires that statements within the loop
change the conditions of the world such that the condition for the While statement will eventually become false.
• If the While loop never ends, it is an infinite while loop.
Visual Programming Indefinite Loops 19
Begin – During – End Events• From chapter 7 tips and techniques
Visual Programming Indefinite Loops 20
Storyboard• Helicopter circling the rabbit on the island
• rabbit turns to look at the helicopter as long as the helicopter is in front of him– no “Exorcist” rabbit
• 2 repeated actions– helicopter circling– rabbit moving head
• when rabbit can no longer see helicopter turn to look at camera
Visual Programming Indefinite Loops 21
While something is true
Visual Programming Indefinite Loops 22
Begin – During - End• Selecting the event
“While Something is True” creates 3 options
• begin: something done when event becomes true
• during: something done while event is true
• end: what to do when event is no longer true
Visual Programming Indefinite Loops 23
Completed World