210 likes | 333 Views
CS320n –Visual Programming. Definite / Counted Loops (Slides 7-1). Thanks to Wanda Dann, Steve Cooper, and Susan Rodger for slide ideas. What We Will Do Today. Learn how what definite loops are and how to use them in a program. Repetition.
E N D
CS320n –Visual Programming Definite / Counted Loops (Slides 7-1) Thanks to Wanda Dann, Steve Cooper, and Susan Rodger for slide ideas.
What We Will Do Today • Learn how what definite loops are and how to use them in a program Definite / Counted Loops
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 are caught or shot down, only to appear elsewhere in the scene • Actions are made to happen again and again by running an animation instruction (or a method) more than once Definite / Counted Loops
Computers are Fast • This is why we use computers. • The number of instructions a CPU can carry out is mind boggling • Intel Processor: 3.20 gigahertz. • CPU doing 3,200,000,000 instructions per second. • Simple instructions like adding two numbers, looking up the value of a variable • Lots of simple instructions can so quickly can accomplish a lot • 3D animations, working with DNA, complex simulations. Definite / Counted Loops
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. Definite / Counted Loops
bunny.hop Definite / Counted Loops
bunny.hop • Makes bunny hop up and down, making a sound and traveling forward 0.8 meters • Code on next slide • How do we get the bunny to hop enough times to get over to the broccoli? Definite / Counted Loops
One solution • Does this work? • Are there any problems with it? Definite / Counted Loops
Counted Loop • A counted loop is an alternative way to repetitive code • Repeats instructions a counted number of times • One of the commands available in Alice Definite / Counted Loops
Code for Loops • The loop instruction executes a definite number of times, specified by a count. (Set when insert loop) • Using a loop instruction • saves time when coding • is convenient, easy to change count • can use a function that returns a number in place of the count Definite / Counted Loops
Modify the Bunny Animation • Make the bunny hop over to a broccoli and eat it • Then hop to next broccoli and eat it • move broccoli so not all together • only do with 3 broccoli • fairly easy to expand to more broccoli Definite / Counted Loops
Infinity times… • If “Infinity times” is selected for a loop, this means the loop will run until the program is shut down Definite / Counted Loops
Example 1: Add a bunny • Add a bunny to the broccoli scene • this bunny should jump up and down while the other bunny eats all the broccoli Definite / Counted Loops
Does this Work? Definite / Counted Loops
How Do We fix This? • Get both bunnies to move • one definitely (the one that eats the broccoli) • one indefinitely (the one that hops up and down until the movie stops?) Definite / Counted Loops
Example 2: Carousel • To make the carousel go round continuously in an amusement park world: Definite / Counted Loops
More complicated loops • What can be placed in a loop? • any number of other commands • including other loops • a loop within a loop • this is a called a nested loop • Example in book: a double ferris wheel Definite / Counted Loops
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. Definite / Counted Loops
Rotating each of the wheels Rotating the outer wheel 10 times Rotating the inner wheels 2 times Definite / Counted Loops
The Complete Program The two loops structures, inner wheel loop nested within the outer wheel loop. How many times does the inner loop execute? Definite / Counted Loops
Using a Function for Count • 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. Definite / Counted Loops