Second Summer 2002

Homework Assignment Two: A Simple Robot

You have to define a class Robot that describes a robot very similar to the one you worked with in the first lab. To clarify how easy this problem is we need to say that metaphorically your robot is:

• a Penguin
• a Tigger
• a BankAccount
• a Rectangle
• a String
all at the same time. The Robot needs to be able to:
• turnLeft (90 degrees)
• moveForward (one step)
The Robot also needs to remember its location.

Two methods:

• getX(), and
• getY()
can be used to report the current values of the robot's location.

The location of the robot is a pair ( x , y ) of integers, that describes the position of the robot.

When you create a Robot one need specify:

• the location (x, y)
• a name for the robot
• the direction the robot is facing
The robot also needs to be able to:
• report the direction() it's facing (N, S, W, E)
• produce a complete report() (x, y, name, direction)
Here's a sample program with two robots:
class Walk {
public static void main(String[] args) {

Robot a = new Robot("Alice", 2, 3, "North");
a.report();

Robot q = new Robot("Queen", -4, -1, "West");
q.report();

a.turnLeft();
a.report();

a.moveForward();
a.report();

a.turnLeft();
a.report();

a.moveForward();
a.report();

a.moveForward();
a.report();

a.moveForward();
a.report();

q.moveForward();
q.report();

q.turnLeft();
q.report();
}
}
This would produce the following output:
frilled.cs.indiana.edu%java Walk
Robot Alice located at (2, 3) facing North
Robot Queen located at (-4, -1) facing West
Robot Alice now turns left.
Robot Alice located at (2, 3) facing West
Robot Alice now moves forward.
Robot Alice located at (1, 3) facing West
Robot Alice now turns left.
Robot Alice located at (1, 3) facing South
Robot Alice now moves forward.
Robot Alice located at (1, 4) facing South
Robot Alice now moves forward.
Robot Alice located at (1, 5) facing South
Robot Alice now moves forward.
Robot Alice located at (1, 6) facing South
Robot Queen now moves forward.
Robot Queen located at (-5, -1) facing West
Robot Queen now turns left.
Robot Queen located at (-5, -1) facing South
frilled.cs.indiana.edu%

Please take a moment to think about the referential we use in this problem which is the same one that we use in computer graphics (see lecture notes three on Jun 19) which is also the reason for which Tigger is (let's say) upside down on the main page of this web site. As always, please let us know if you have any questions, of course.