1 / 41

Programming in Alice

Programming in Alice. Chapter 2. Today’s Agenda. Designing a Program Writing Methods Executing Instructions Simultaneously Comments Tips for Setting Up an Initial Scene. Terminology. Algorithm – step by step structure to solve a problem

emiko
Download Presentation

Programming in Alice

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming in Alice Chapter 2

  2. Today’s Agenda • Designing a Program • Writing Methods • Executing Instructions Simultaneously • Comments • Tips for Setting Up an Initial Scene

  3. Terminology • Algorithm – step by step structure to solve a problem • Program – implemention of algorithm using a programming language • Instruction – an action to be performed • Pseudo code – loose set of instructions not tied to any program environment

  4. Steps in Creating Programs • Four step process • What is problem? • Design or plan ahead • Implement or write the program • Test to see if it works

  5. Scenario • Problem statement or story • Also called requirement specifications • In Alice consists of • World scene • Objects • Actions

  6. Scenario Provides Answers To • What story is to be told? • What objects are needed? • Primary objects • Background objects • What actions are to take place? • Become instructions in program

  7. Scenario: First Encounter • After traveling through space, a robot-manned craft just landed on a moon. • Robot sets up camera so scientists in Houston can view this historic event. • Camera view shows robot, lunar lander and nearby rocks. • Alien surprises robot when it peeks out from behind a rock. • Robot sees alien and walks over for closer look. • The alien is frightened and hides behind rocks. • Robot calls Houston to report alien

  8. Step 1: What is Problem? • What story will be told? • Humorous story about robot’s first encounter with an alien on a distant moon • What objects are used? • Robot, lunar lander, alien, lunar background • What actions take place? • Alien peeks out from behind rock • Robot turns head around & moves toward alien • Alien hides behind rocks • Robot sends message back to earth

  9. Pseudo Code • Lists of English worded steps to perform task • Provides algorithmic structure • Breaks problem down into smaller tasks • List all things that will be done in scene • Can make basic drawing to better illustrate scene you wish to create

  10. Pseudo Code Example Sketch

  11. Pseudo Code Scene • Not intended to be artistic • Can use simple circles, squares and lines • Label color of shapes • Just give idea of what scene will look like

  12. Create Initial World • Use Alice scene editor to add objects • Arrange objects in various poses • Capture screen as each successive scene is created for storyboard

  13. Pseudo Code Example • Do following steps in order • Alien moves up • Alien says "Slithy toves?" • Robot's head turns around • Entire Robot turns to look at alien • Do together • Robot moves toward alien • Robot legs walk • Alien moves down • Robot turns to look at camera • Robot’s head turns red to signal danger • Robot says “Houston, we have a problem!”

  14. Step 3: Pseudo Code Implementation • Translate pseudo code actions into program • Program • A list of instructions to have objects perform animation actions • When programming you need to be concerned with • Syntax – statement structure and punctuation • Alice takes care of this for you • You drag instruction to method editor • Semantics – meaning of statements • Sequence – order of programming instructions

  15. Translating the Design • Some pseudo code steps can be written as single instruction • Ex: robot turns to face alien • Other steps are composite actions that require more than one instruction • To make the robot legs walk, at least two robot legs must bend at a joint

  16. Writing Methods • What is a method? • Set of instructions • Create methods by dragging tiles from details pane into the Method Editor • These tiles are the instructions • Method Editor not available in Scene Editor mode my first method Method Editor

  17. Dragging Method Tile to Editor • To place instruction in method editor drag from details pane • Pop-up menu appears asking for direction, select one • Pop-up menu appears asking for distance amount • Example: move instruction • Arguments used in example • Distance amount (can predefine values or other (enter value with keyboard) • Direction Drag method to editor

  18. Method with Instruction Tiles • Methods execute the instructions (tiles) that are dragged into the Method Editor

  19. Terminology • Calling a method - executing a method • Parameter – tells method specifics of what to do • Argument –information sent to method • For method hare.move what direction to move? • Possibilities for direction parameter are up, down, left, right • How far to move is another argument to send move method • Passing arguments • A method is called with arguments sent to its parameters argument argument object method name editing tag

  20. Entering Custom Number • When other is chosen • A number pad pops up • Can enter number with keyboard • Click on number pad • Does not always work • Click Okay or Cancel when done • ‘/’ is for fractions instead of you manually calculating it

  21. Editing Tag • Holds optional arguments • What appears depends on the method called • Ex: Duration - amount of time for action to take place • Default - 1 second

  22. Duration Argument • Each instruction takes 1 second to execute by default • Can change time with duration option • Increase or decrease duration for realism • Increase to show movement over long distance and time • Decrease to speed up action • Synchronize objects together • Example: leg move in sync with lunar robot • Lunar robot moved 1 sec at time • Each leg needed to move forward and backward in 1 sec • Therefore move forward ½ sec and backward ½ sec

  23. Style Argument • Specifies how smoothly one movement instruction will blend into next one • Gently – begin and end gently • Abruptly – begin and end abruptly • Sometimes needed to transition well since gently takes too long • Begin gently – ends abruptly • End gently – begins abruptly

  24. Instructions (Methods) • Methods available to use are: • Move – forward, backward, up, down, left, right (in meters) • Turn – left, right, forward, backward (revolutions) • Roll – left, right (revolutions) • Resize – increase or decrease size • Say – put thought bubble over object • Turn to face – select who to turn and face

  25. Primitive Methods • All objects have common set of built-in methods for performing actions • These “primitive methods” get objects to move, turn, change size, etc • Seen in methods tab of details pane • See list in Table 2-1 (pp. 65-66) with explanation of each one dot notation: hare.move

  26. Control Statements • Instruction (action) sequence • Drag instruction to code editor • Sequential Action Block • Actions occur one after another • Simultaneous Action Block • Actions occur at same time Drag block into editor Do in order

  27. “Do in order” Structure • By default, instructions are executed one after the other in the order they appear in the Method Editor • It is better if you place instructions in “Do in order” block • Will be easier to move group of instructions if needed later

  28. The “Do Together” Structure • For simultaneous actions, drag“Do together” into the MethodEditor • Place the instructions you want to be executed simultaneously in the “Do together” block • Make sure the duration for allitems in “Do together” are same • Otherwise some will finish quicker than others

  29. Nesting • Sometimes a group of instructions need to be executed simultaneously • This is done by placing a “Do in order” block within a “Do together” block • Example has brother penguin turn head right and left at same time as sister penguin does • If all done together nothing would happen • Head would turn right and left at same time

  30. Create Program • Choose what sequence to execute instructions • At same time • Consecutively • Refer to pseudo code to find instruction order

  31. FirstEncounter Program

  32. Demonstrate Program • Demonstrate creating FirstEncounter

  33. Step 4: Testing • Important step in creating a program is to run it • To be sure it does what you expect it to do • Use an incremental development process • Write a few lines of code then run it • Write a few more lines and run it • Write a few more lines and run it • Allows finding many problems and fix them as you go • Called debugging – find bugs or errors in program

  34. Comments • Makes the code understandable • Not all combination of instructions are immediately obvious • Explains purpose of segment of program to human reader • Helps • You read program later • Others when determining what program does • Alice ignores comments when executing program

  35. Comment Example Comment //comment tile

  36. Can set initial position of objects in scene Select object in “Object Tree” then select a method Tips for Setting Up Initial Scene

  37. Moving Object to Center of World • Use move tomethod and choose entire world as method’s argument • Places object’s center point at world’s center point of (0, 0, 0) • This drives hare’s lower body into ground • Center of gravity of hare is in abdomen • Useful when lose object in scene or as starting point

  38. Positioning Character’s Arms

  39. Tips for Setting Up Initial Scene • Positioning objects a specified distance apart • Ex: position teapot’s center point ½ meter to right of plate’s center point • Move teapot object so its center point is same location as plate’s center point • Set pointOfView in properties to position: 0,0,0 • Place the object’s center point at the world’s center point of (0, 0, 0) • Use move method for teapot, choose rightthen ½ meter under amount

  40. Moving Camera To An Object • Right-click the object and choose Camera get a good look at this • Camera moves to a position so the object is in plain view

  41. Homework • Read chapter 2 • Do tutorials • Tutorials 2-1, p 62 • Tutorials 2-2, p. 67 • Tutorials 2-3, p. 82 • Tutorials 2-4, p. 89 • Tutorials 2-5, p. 98 • Answer questions in handout • Do lab assignments after handing in answered questions • Due one week after assigned with 1 week grace

More Related