Microbot is a finite-state machine turtle programming game. Given a map, the goal is to define a state transition mapping such that the microbot, following the mapping, will reach all open squares regardless of its starting position.
This project was developed to help students in a high school computer science class test their solutions to a homework assignment.
The state of a bot consists of:
Mappings should be formatted:
A BBBB -> C D
This means: “A bot with state A BBBB should move in direction C and update its integer value to D.”
A is an integer from 0-255.BBBB is a 4-character string that represents the presence of walls (N, E, W, S) or open spaces.
N, E, W, or S means there is a wall to the north, east, west, or south respectively.* acts as a wildcard (matches both wall and empty space).C is the direction the bot should move (N, W, E, S) or X to indicate no movement. Moving into a wall is an error.D is the new integer value to store. (It replaces the previous value.)No two rules should cover the same integer + wall combination.
The bot always starts with integer value 0 stored.
0 **** -> E 0
This rule makes the bot move east until it “crashes” into a wall.
0 NEW_ -> S 1
If there are walls to the north, east, and west, and there is an empty cell to the south, this rule makes the bot move south and store the integer 1