Presentation on theme: "Chapter 7.2 While – Conditional Loops. What is the BEST description of how many times a while loop executes? A.Some fixed number of times that the programmer."— Presentation transcript:
Chapter 7.2 While – Conditional Loops
What is the BEST description of how many times a while loop executes? A.Some fixed number of times that the programmer can determine before the code runs B.Some fixed number of times that can be calculated with a function C.Some variable number of times that is determined by the distance of one object to another D.Some variable number of times that programmer cannot determine before the code runs
What loop header would keep a shark swimming after a goldfish until he was within 0.5 meters behind the goldfish?
We change the while loop Boolean expression controlling the chase to this What does it do (when will the loop iterate)? A.Chase until the goldfish turns blue B.Chase until the goldfish turns a color other than blue C.Chase until the shark gets close
Section 7.2 While (Indeterminate) Loops While loops execute some number of times that we cannot determine before the code runs
If I have a chase that should keep going on until the goldfish turns blue (pretend he turns blue after fleeing for a certain amount of time) what condition should we use to control the while loop in the chase method? D) A and C E) B and C
Hint to getting while loops right Humans naturally think “until” – I’ll keep spending until I run out of money (balance <= 0) – I’ll keep dancing until I fall asleep Computers use “while” loops – the opposite – I’ll keep spending while I still have money (balance > 0) – I’ll keep dancing while I am not asleep – While I have a dirty dish, I’ll keep washing dishes
Let’s have a race… A – Wind up penguin (he just goes) While loop with “walk and spin” inside it – Jet-pack penguin2 (controlled by <- event) Moves forward.5 meters Race to a stop sign (within 2 meters) Whenever someone gets within 2 meters – Stop looping (going)
When should we keep going? e.g. while loop expression true (P1: wind up, P2: jet pack) CasesABCD P1, P2 outsideTTTT P1 inside, P2 outsideTTTF P2 inside, P1 outsideTTFF P1, P2 insideTFFF
Which while loop header (tile) would you use to control the “going”?
This would STOP the game (evaluate to false) when A.Both penguins must be close to the stop sign B.Either penguin is close to the stop sign C.Neither penguin is close to the stop sign D.I don’t know What does the other one do?
CasesE1E2Evaluates To (keep playing while true) P1, P2 outsideTT P1 inside, P2 outside FT P2 inside, P1 outside TF P1, P2 insideFF Truth Table for OR logical operator
CasesE1E2Evaluates To (keep playing while true) P1, P2 outsideTT P1 inside, P2 outside FT P2 inside, P1 outside TF P1, P2 insideFF Truth Table for AND logical operator
Let’s look at the code:
The jet pack penguin (P2) can move forward on a <- event when A.Neither penguin is close to the stop sign B.The windup penguin is close, but the jet pack penguin isn’t C.The jet pack penguin is close, but the windup penguin isn’t D.Any time (any possible situation of TT, TF, FT, FF)
Both penguins stop moving when someone “close” To fix this we’d need to create how many of the following? 1.New method to be called for <- event handler 2.New method to be called by the windUpAndGo method 3.If statement in <- event handler 4.If statement in penguin move method 5.If statement in windUpAndGo method
Which if statement would you want and why? Allow to move when… C) Both A and B D) Neither A nor B E) I don’t know
2 meters from the stop sign? That seems far! (3-D object representation trickiness) Stop Sign center: in middle SIGN Penguin center: in middle of FEET I want to control stopping by distance of penguin center from BASE of stop sign! Use math – again SQRT( c*c – b*b) SQRT (penguin.distanceTo(stopSign) * penguin.distanceTo(stopSign) – stopSign.height * stopSign.height) C B A
Moral of the Story In your project, take the time to look at how the objects you are using are designed – Before you get too far into the code