250 likes | 268 Views
Learn about Karel’s world, capabilities, tasks, and primitive instructions. Understand how to create programs and execute them with Karel.
E N D
CSE 111 Karel the Robot' Thanks to Dr. Kris Schindler for this (and all Karel the Robot slides)
Logging into Karel • Available on all cybrary computers • From home, or in lab use UB Virtual Computing Lab • We will go over this in lab • Guide available at http://www.buffalo.edu/ubit/service-guides/software/my-virtual-computing-lab.html • Linked from course website
Karel’s World • Plain made of streets & avenues • Corners • Describe intersection of streets and avenues • Referenced by • avenue number • street number • Avenue & street numbers • Positive integers • Origin • 1st avenue & 1st street • Locations • Relative • Absolute
Karel’s World • Walls • Made of neutronium • Obstacles • Karel cannot pass through a wall • Locations • Between streets • Between avenues • Form boundaries on west side & south side
Karel’s World • Beepers • Pinging beeper • Situated at intersections • Can be • picked up • carried • put down
Karel’s Capabilities • Can Karel the Robot think? • Take a look at the path following example • Karel navigates a maze • The configuration of the maze is unknown to Karel • The end of the maze is determined by a single beeper placed at the exit
Karel’s Capabilities • Karel can • move forward • turn in place • Karel knows • which direction it is facing • Karel is equipped with • three cameras • Cameras face • forward • right • left • Range • 1/2 block
Karel’s Capabilities • Karel can hear • Can detect a beeper on the same corner Karel is standing • Karel’s Beeper Bag • Stores beepers • Karel can put beepers in the bag and remove beepers from the bag • Soundproof • Karel cannot hear beepers in the bag
Karel’s Tasks • How does Karel know what to do? • Karel can follow a detailed set of instructions • Called a program • The language Karel understands is called a programming language • Defined by • vocabulary • punctuation marks • rules of grammar • Simple, yet powerful
Tasks & Situations • What is a task? • Something we want Karel to do • What is a situation? • Description of Karel’s world • Includes • Size & location of each wall • Location & number of beepers • Karel’s location & direction Karel is facing • Initial Situation • Karel’s world at beginning of task • Includes Karel’s initial location, direction Karel is facing, and the number of beepers in the beeper bag • Final Situation • Karel’s world after task is completed • Includes Karel’s final location, direction Karel is facing, and the number of beepers in the beeper bag
Primitive Instructions • Instructions • move • turnleft • pickbeeper • putbeeper • turnoff • They allow Karel to move through world & handle beepers • Provide for avoiding obstacles & transporting beepers
Program & Instruction Execution • An instruction is executed when Karel performs the action associated with the instruction • A program is executed when the instructions in a program are carried out
Primitive Instruction Details • Changing Position • move • Karel moves forward one block • Karel remains facing in the same direction • If a wall is in Karel’s way & a move instruction is executed, Karel shuts off • Error shutoff • turnleft • Karel pivots 90 degrees to left • Location does not change • Cannot cause error shutoff • Why not? • There is no turnright instruction • How does Karel turn right?
Primitive Instruction Details • Handling Beepers • pickbeeper • Karel picks up a beeper from the corner on which it is standing and deposits the beeper in the beeper bag • Only one beeper is picked up • Note that there may be multiple beepers on a corner • What if no beeper exists on the corner? • Error shutoff • putbeeper • Karel takes a beeper out of beeper bag and places beeper on corner • What if there are not any beepers in the bag? • Error shutoff
Primitive Instruction Details • Handling Beepers • pickbeeper • Karel picks up a beeper from the corner on which it is standing and deposits the beeper in the beeper bag • Only one beeper is picked up • Note that there may be multiple beepers on a corner • What if no beeper exists on the corner? • Error shutoff • putbeeper • Karel takes a beeper out of beeper bag and places beeper on corner • What if there are not any beepers in the bag? • Error shutoff
Primitive Instruction Details • Completing a Task • turnoff • Karel must be shut down after task is completed • Last instruction in every program
Program Structure • General Structure BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION Instructions, all but last ending with a semicolon (;) END-OF-EXECUTION END-OF-PROGRAM
Executing a Program • Instructions between BEGINNING-OF-EXECUTION and END-OF-EXECUTION sequentially executed until a turnoff instruction or error shutoff is encountered. • Since Karel is a cyber robot, we simulate & trace the program • Simulate • Systematically execute program just as Karel would perform each instruction • Trace • Step through program, maintaining each step • Verification • Simulation & tracing through program to ensure that it works properly
Using Karel the Robot in Lab • Enter program • Compile program • Checks for syntax errors, getting program ready to run • Setup initial world • Initialize world • Execute program • Run • Execution begins • Ends with either: • a proper shutdown (turnoff instruction) • a runtime error • Trace • Step • Unstep
Saving Your Work • Programs and worlds can be saved!
Sample Program • Task • Pick up beeper located at intersection of avenue 3, and street 4 • Initial World • Karel is at the intersection of avenue 1 and street 1 facing north • Beeper placed at intersection of avenue 3 and street 4
Sample Program • Program BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION turnleft; turnleft; turnleft; move; move; turnleft; move; move; move; pickbeeper; turnoff END-OF-EXECUTION END-OF-PROGRAM
Sample Program • Final World
References • Richard E. Pattis (revised by Jim Roberts & mark Stehlik), Karel the Robot, John Wiley & Sons, Inc., 2nd edition, 1995, pp 1-11
Your Task in Lab • Run tutorial, learning how to program using Karel the Robot