RoBOTL

by Professor Lemone



was designed and implemented at WPI.

Initially, the RoBOTL world is empty.

We can create one of its inhabitants (called a basic_bot) using:

New

and the following program:


execute
{
new basic_bot Eve;
}

Note that Eve has been placed in square (0,0) and is facing East. Let's make one more basic_bot named Adam, near Eve.


execute
{
new basic_bot Adam at 0,5;
new basic_bot Eve;
}

When basic_bot's like Eve or Adam are created, they know how to do a few things (these are their methods:)

Move

TurnLeft

PutBeeper

PickBeeper

TurnOff

To get it to perform any of these actions, you must send a message using Tell

Let's tell Eve to TurnLeft and Move 1 square towards Adam :


execute
{
  new basic_bot Adam at 0,5;
  new basic_bot Eve;
  tell Eve:
  {
    TurnLeft;
    Move 1;
  }
}

And we will have Adam TurnLeft and Move 1 square away from Eve :


execute
{
  new basic_bot Adam at 0,5;
  new basic_bot Eve;
  tell Eve:
  {
    TurnLeft;
    Move 1;
  }
  tell Adam:
  {
    TurnLeft;
    Move 1;
  }
}

How do we control the robots and their world?

execute
{
  new basic_bot Eve;
  new basic_bot Adam at 0,5;
  tell Eve:
  {
    iterate 3 times
       TurnLeft;
    Move 1;
  }
  tell Adam:
  {
    TurnLeft;
    Move 1;
  }
}

Notice that Eve only TurnLeft's 3 times. If we want her to both TurnLeft and Move 1 all 3 times, we'd have to put braces,
{ }, around those 2 instructions:


execute
{
  new basic_bot Adam;
  new basic_bot Eve at 5,5;
  tell Eve:
  {
    iterate 3 times
    {   
      TurnLeft;
      Move 1;
    }
  }
  tell Adam:
  {
    TurnLeft;
    Move 1;
  }
}

If we are concerned that a Robot may run into the edge of the world, we can test:


execute
{
  new basic_bot Eve;
  tell Eve:
  {
    iterate 3 times
    {   
      TurnLeft;
      if (FrontIsClear) Move 1;
    }
  }
}

More RoBOTL

Web References

RoBOTL Tutorial

RoBOTL Reference Guide

Karel, the Robot, RoBOTL's predecessor

Jim Meddick's Robotman

Send questions and comments to: Karen Lemone

What do these buttons mean?