RoboRover is a simple simulation of a toy robot on a tabletop, taking commands from the user to interact with the robot.
- Shall requirements must be met for the application to be considered complete.
- The application shall take in commands and output an end state
- Command input shall be from a file or from standard input
- The tabletop in the application shall be square
- The tabletop in the application shall have defined bounds of 5 units (x-axis) by 5 units (y-axis), where a unit is the movement distance of the robot in a single command
- The
SOUTHWESTcorner shall be considered the origin (0,0) of the tabletop - The tabletop in the application shall have no obstructions except the robot
- Commands that would result in the robot position being outside the tabletop bounds shall not be executed
- The application shall be able to accept the following commands:
PLACE,MOVE,LEFT,RIGHT, andREPORT - On starting the application, all commands shall not be executed until a valid
PLACEcommand is issued - The
PLACEcommand shall put the robot on the tabletop in position X,Y and facingNORTH,SOUTH,EASTorWESTwhen the command is issued in the formatPLACE X,Y,F - The
MOVEcommand shall move the toy robot one unit forward in the direction it is currently facing - The
LEFTandRIGHTcommands shall rotate the robot 90 degrees in the specified direction without changing the position of the robot - The
REPORTcommand shall announce the X, Y position of the robot, and the direction it is facing. This can be in any form, but standard output is sufficient.
Download and run the latest artifact from the build job:
roborover.exe
Install uv version 0.6.14 by following the installation instructions.
Clone the repo, navigate to the project path, then run the following command in the terminal:
uv run roborover.pyRoboRover uses the Command Pattern to separate command logic from the robot logic. This allows for easy extensibility of commands and testing of commands in isolation.
