Introducing While loops and random numbers too - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Introducing While loops and random numbers too

Description:

A common feature in popular 'action films' is an exciting chase scene. As an illustration of an animated chase scene, consider the hungry shark in this ... – PowerPoint PPT presentation

Number of Views:420
Avg rating:3.0/5.0
Slides: 25
Provided by: Wanda6
Category:

less

Transcript and Presenter's Notes

Title: Introducing While loops and random numbers too


1
Introducing While loops (and random numbers too)
  • Alice

2
Interesting tidbit from lab
  • Tracing code
  • The problem We were getting an array out of
    bounds error, but didnt know on which iteration
    of the loop it was failing!
  • The code looked something like
  • for (x0 x
  • for (y0y
  • Pixel somepixel this.getPixel(x,y)

3
Interesting tidbit from lab
  • Tracing code
  • The solution Print out the values of x and y
    each time through the loops, to see where the
    problem is!
  • The debug code looked something like
  • for (x0 x
  • for (y0y
  • System.out.println(x y)
  • Pixel somepixel this.getPixel(x,y)

4
Lecture objectives
  • To examine the while loop in Alice
  • In Java, the while loop has been presented as an
    alternative to the for loop for going through the
    pixels in an array
  • It is used in another kind of application, when
    we do not know a priori how many iterations will
    be needed
  • For example, when random motion is involved

5
Random Numbers
  • Random numbers are used in certain kinds of
    computer programs
  • Examples
  • security for web applications
  • encryption for satellite transmissions
  • gaming programs
  • scientific simulations
  • In this session, we will look at examples of
    how to use random numbers in animations

6
Built-in functions
  • Alice provides World-level built-in functions for
    generating random numbers.

7
Demo
  • 20Penguin
  • Concepts illustrated in this example
  • The random number function returns a floating
    point value between 0 and 1.
  • A different range of values can be obtained by
    using the minimum and maximum parameters.
  • The integer only option allows selection of
    either floating point or whole numbers.

8
Random 3D Motion
  • In the previous example, the penguin moves in
    only one direction.
  • In some animations, we want an object to move to
    a random location in 3D. We call this random 3D
    motion.
  • For example, the goldfish in this world is to
    swim in a random motion, where the fish can move
    in any direction .

9
Six possible directions
  • Of course, six move directions are possible
  • forward, backward, left, right, up, down
  • In this example, we can eliminate backward
    because goldfish do not swim backward.
  • To simplify the code, we can take advantage of
    negative numbers.
  • For example, this instruction actually moves the
    goldfish right

10
Storyboard
  • Only three move instructions are needed
  • up (will move down if the random number is
    negative)
  • left (will move right if random number is
    negative)
  • forward (no backward motion)
  • Two parameters (min, max) will be used to
    restrict the motion of the fish to a nearby
    location-- to look like swimming.

randomMotion Parameters min, max Do together
fish moves up a random number distance fish
moves left a random number distance fish moves
forward a random number distance
11
Demo
  • 20Goldfish
  • Concepts illustrated in this example
  • A random movement in 3D space is accomplished by
    three simultaneous move instructions.
  • In this example, the minimum distance of the
    move forward instruction is 0 (the goldfish
    always moves forward).
  • To call the randomMotion method, min and max
    values are sent as arguments to the parameters

12
Indefinite repetition
  • In some situations, we dont know exactly how
    many times a block of instructions should be
    repeated.
  • All we know is that repetition is needed
  • For example, in a board game like chess or
    checkers, we dont know exactly how many moves it
    will take for a player to win or lose the game
    all we know is that several moves will be
    needed.

13
Indefinite Repetition
  • In programs where a count of repetitions is not
    known (indefinite), we can use one of two
    repetition control mechanisms
  • While statement
  • Recursion
  • This session focuses on the While statement.

14
How the While statement works
  • The general idea is
  • While some condition is true
  • execute instruction(s)
  • To write a While statement, we need to know the
    condition that determines whether the loop will
    be repeated.

15
Example
  • A common feature in popular "action films" is an
    exciting chase scene.
  • As an illustration of an animated chase scene,
    consider the hungry shark in this world. The
    shark is going to chase after and catch a fleeing
    fish.

16
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.

17
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 to a random (but nearby)
    location.
  • As long as the goldfish is still 0.5 meters
    away from the shark, repeat the actions.

18
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)

The shark swim, goldfish flee, and shark eat
actions are complex. Use stepwise refinement to
break them down into simple steps.
19

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)

flee Do together wiggle tail move to random
location
swim Do in order urn torso left and move
forward turn torso right and move forward
turn torso left and move forward
Eat Parameter what Do in order shark
points at what shark opens jaw and what
disappears shark closes jaw
20
Demo
  • 20Chase
  • Concepts illustrated in this example
  • A While statement uses a Boolean condition to
    determine when the repetition ends.
  • Code written in a previous program can be reused
    in a new program.
  • In this example, the flee method calls the
    previously written randomMotion method.

21
Shark will catch goldfish
  • How do we know the shark will eventually catch
    the goldfish?
  • The shark always moves 0.4 meters toward the
    goldfish
  • The goldfish's random motion is restricted by
    the min and max values used in the random number
    function.

22
The loop will end
  • Geometrically, the fish can never move more than
    0.35 meters away
  • The shark has a distance advantage and will
    eventually catch up. The loop will end.

0.35
0.2
0.2
0.2
23
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.

24
Reading
  • Alice Chapter 6, Tips Techniques 6, Random
    Numbers and Random Motion
  • Alice Chapter 7-2, Indefinite While loops
Write a Comment
User Comments (0)
About PowerShow.com