200 likes | 272 Views
As you come in…. Sign in (in back) and pick up Badge Name Card – on computer… Log in: Launch/Start Alice Any questions? (of any kind) DOWNLOADS FOR TODAY: http://ce21sandiego.org/2013 CylinderStarter.a2w Online student textbook (at bottom of each page below)
E N D
As you come in… • Sign in (in back) and pick up • Badge • Name Card – on computer… • Log in: • Launch/Start Alice • Any questions? (of any kind) • DOWNLOADS FOR TODAY: • http://ce21sandiego.org/2013 CylinderStarter.a2w • Online student textbook (at bottom of each page below) • Module 9.2 Magnet World with Other Objects.a2w • Module 9.4 SpaceShipGame.a2w
Today’s plan • While loops (penguin race, timer) • Create your own function with a parameter (timer) • Compound boolean expressions and if statements – can solve same problem multiple ways • Or – car magnet • And – space ship take off
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)
While loops in Alice tend to be used when… • You have a user controlled (hence, not predictable) event • So you don’t know when the user might • Click on an object • Type a key, • User types a number (pick a number between 1-10, etc. • You have (not predictable) actions controlled by, for example, random numbers • E.g. the lunchlady/zombie or fish/shark case
When should we keep going?e.g. while loop expression true(P1: wind up, P2: jet pack)
Which while loop header (tile) would you use to control the “going”?
Let’s Build the Code! • Download from http://ce21sandiego.org/2013 • Meeting 4: JetPackPenguinTeacherStart.a2w • Plan: • Explore object positions • Create event that moves jet pack penguin 0.5 meters whenever <space> is pushed.(Test) • SIMPLIFY: Create loop that makes windup penguin move repeatedly (forever), 0.35 meters (at same time as “walks” and windupKey “rolls” 0.25 revolutions) • CORRECT: change loop to have the game end (e.g. windup penguin stops walking) when either penguin “wins” (gets within 2 meters of stop sign)WHILE:_________________________________________
What does the other one do? Game keeps playing while… • Either penguin is close to the stop sign • Neither penguin is close to the stop sign
Useful tool: “Timer” • Use: to “count down time” in a game • 2 “cylinder” objects set on top of each other • Grey is “background” • Yellow is in “front” • Yellow moves down a bit each “time step” (loop iteration) • The game is over when the yellow cylinder is • Distance to the ground >= cylinder height. • (So while not, game is ongoing…)
Timer Coding Plan • SIMPLIFY: Loop forever (while true) move yellow cylinder down. • COMPLETE: • Loop should stop after yellow cylinder “disappears” – say should take 4 steps • Hint: cylinder is 2 meters tall • After loop: have “3-D Text” (originally set to opacity 0) become visible saying “Game Over” • IMPROVE: Regardless cylinder size, calculate how many “steps” before cylinder gone • 10 steps? 4 steps? • NEW PROGRAMMING CONCEPT: Functions – perform (complex) calculations
Compound Boolean Expressions – ORCar Driving Game (watch video 9.2) • Modify: Car should only turn to head towards MAGNETS • One of the 4 magnets • Two ways if…
Compound Boolean Expressions – ORCar Driving Game • Two ways if…
Compound Boolean Expressions – ORCar Driving Game • Two ways if…
Compound Boolean Expressions – ANDSpaceship takes off • Space ship only takes off if all spheres are blue • Two ways if…
Compound Boolean Expressions – ANDSpaceship takes off • Two ways if…
Compound Boolean Expressions – ANDSpaceship takes off • Two ways if…
Functions: Calculate a Value and “Return” it. • Hides away complex calculation • When program executes that line/tile: change of control flow! • Jump to code/function that does the calculation • It “returns” the calculated value, which replaces the function call tile • Finally, that line/tile is executed
Examples you know • Return number values: • Move forward distanceTo • Random • Create our own – which return boolean values • isAMagnet • areBallsBlue
Coming Up… • Week 5: Compound Boolean Expressions and if statements and while loops • Week 6: Functions, Mathematical expressions, parameters, methods • Week 7: Functions, parameters, methods and events • Week 8: Lists