1 / 12

Karel – Primitive Instructions

Karel – Primitive Instructions. Basic tools with which all problems are solved (analogies: carpentry, geometry) move() turnLeft() putBeeper() pickBeeper() turnOff(). OOP -ness. object.method1(); object.method2(); -where a method acts on the object

kalei
Télécharger la présentation

Karel – Primitive Instructions

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. Karel – Primitive Instructions • Basic tools with which all problems are solved (analogies: carpentry, geometry) • move() • turnLeft() • putBeeper() • pickBeeper() • turnOff()

  2. OOP -ness • object.method1(); • object.method2(); -where a method acts on the object -objects are typically nouns (e.g., karel) -methods are typically verbs (e.g., move) and represent behavior karel.move()

  3. move() • forward only, one block • “Error Shutoff” if trying to move into a wall (a duh! Look first!) Remember C++ and div by zero???

  4. turnLeft() • stay at same corner • turn 90 degrees to the left • cannot cause an error shutoff

  5. pickBeeper() • picks up beeper on current corner and places in beeper bag • attempted on beeper-less corners causes an error shutoff

  6. putBeeper() • take beeper from beeper bag and put down on current corner • attempted with an empty beeper bag causes an error shutoff

  7. turnOff() • robot turns off and is incapable of executing another instruction until restarted • the last instruction executed on a robot object

  8. Description public class UrRobot { void move() {…} void turnOff() {…} void turnLeft() {…} void pickBeeper() {…} void putBeeper() {…} } • UrRobot class (the “Model-T” Robot) “primitive” You can’t/don’t need to define this class – it is in a library for you to use

  9. Sample Program import kareltherobot.*; public class SampleTest implements Directions { public static void main(String args[]) { ur_Robot karel = new UrRobot(2, 1, East, 0); karel.move(); karel.move(); karel.turnLeft(); karel.turnOff(); } static { … // code here that you need not worry much about } }

  10. Error Classification • 4-types • lexical error (compiler catches) • word not in its dictionary • syntax error (compiler catches) • incorrect grammar, punctuation, incorrect location of a statement • execution error (run-time environment catches) • can’t perform what you ask (at run-time) • intent error (logic - guess who catches this one!) • program terminates successfully – junk output, however Which is the hardest type of error to correct? Why?

  11. Now You Try a Short Program on Paper – 10 minutes • start a robot (HBot) at position (1, 1) (a.k.a, the “origin”) facing North and having an infinite number of beepers • Have the robot “print” (using beepers) the letter H (with 3-beeper sides and a 1-beeper bar) • when done, the robot should be facing North back at the origin (leaving the world in its original state of being)

  12. Programming the HBot together • Let’s go into BlueJ and write the HBot. We’ll cover these items: • Your network drive and staying organized • Creating a workspace • Using/reading the API • Compile vs. Execute • www.apcomputerscience.com and setting up things at home

More Related