The Roger Frank Lessons
Introduction to Computer Science: GvR Unit

Guido van Robot Programming Summary

The Five Primitive Guido van Robot Instructions:


   1. move
   2. turnleft
   3. pickbeeper
   4. putbeeper
   5. turnoff

Block Structuring


Each Guido van Robot instruction must be on a separate line. A sequence of Guido van Robot instructions can be treated as a single instruction by indenting the same number of spaces. <instruction> refers to any of the five primitive instructions above, the conditional branching or iteration instructions below, or a user defined instruction.
    <instruction>
    <instruction>
      ...
    <instruction>

Conditionals


GvR has eighteen built-in tests that are divided into three groups: the first six are wall tests,
the next four are beeper tests,
and the last eight are compass tests:
   1. front_is_clear
   2. front_is_blocked
   3. left_is_clear
   4. left_is_blocked
   5. right_is_clear
   6. right_is_blocked
   7. next_to_a_beeper
   8. not_next_to_a_beeper
   9. any_beepers_in_beeper_bag
  10. no_beepers_in_beeper_bag
  11. facing_north
  12. not_facing_north
  13. facing_south
  14. not_facing_south
  15. facing_east
  16. not_facing_east
  17. facing_west
  18. not_facing_west

Conditional Branching


Conditional branching refers to the ability of a program to alter it's flow of execution based on the result of the evaluation of a conditional.
The three types of conditional branching instructions in Guido van Robot are if and if/else and if/elif/else. <test> refers to one of the eighteen conditionals above.
if :
    

if :
    
else:
    

if :
    
elif :
    
...
elif :
    
else:
    

Iteration


Iteration refers to the ability of a program to repeate an instruction (or block of instructions) over and over until some condition is met. The two types of iteration instructions are the do and while instructions. <positive_number> must be an integer greater than 0.
do :
    

while :
    

Defining a New Instruction:


New instructions can be created for Guido van Robot using the define statement. <new_name> can be any sequence of letters or digits as long as it begins with a letter and is not already used as an instruction. Letters for Guido van Robot are A..Z, a..z, and the underscore (_) character. Guido van Robot is case sensitive, so TurnRight, turnright, and turnRight are all different names.
define :
    

Previous | Index

Copyright © 2003 Jeffrey Elkner.