# EyeSim - Maze Format

The Maze format is a very simple input format for environments with right angles only, such as the Micro Mouse competitions.

### Walls

The input is ASCII characters only. Walls are specified by single characters within a line. A "|" (at odd positions in a line, 1,3,5,..) denotes a wall piece in y-direction, a "_" (at even positions in a line, 2,4,6,..) is a wall piece in x-direction. So, each line contains in fact the horizontal walls of its coordinate and the vertical wall segments (if any) above it.

Example:
This defines a rectangle with two dividing walls.

     _ _ _
    |    _|
    |_|_ _|

However, the following is identical and reads nicer:

     _____
    |    _|
    |_|___|

Complex mazes can be constructed this way:

     _________________
    |  _________|     |
    | |  _____  | |___|
    | | |_____  | | | |
    | |  _  __|___|  _|
    | |_|____________ |
    | |___    |  _  | |
    |  _  | |___| | __|
    | | | |   | ____  |
    |_|_____|_______|_|

### Starting Positions

Characters may be added to a maze to indicate starting positions of one or multiple robots. Uppercase characters assume a wall below the character, lowercase letters do not:

- S,s robot start position, facing up
- U,u robot start position, facing up (identical to S,s)
- D,d robot start position, facing down
- L,l robot start position, facing left
- R,r robot start position, facing right

### Size

The size of a wall element can be specified in mm as a single integer number in the last line. If missing, 36cm is the default value.

Example:

     _________________
    |  _________|     |
    | |  _____  | |___|
    | | |_____  | | | |
    | |  _  __|___|  _|
    | |_|____________ |
    | |___    |  _  | |
    |  _  | |___| | __|
    | | | |   | ____  |
    |S|_____|_______|_|
    100

The robot will start in the bottom left position, facing up. The size of a wall element is set to 100 mm (10 cm).

### Ball

A soccer ball can be inserted by using the symbol "o". The robots can then interact with the ball, e.g. push or kick it.

Example:

       _____________________________________________________
      |                                                     |
      |                                                     |
      |          r                               l          |
      |                                                     |
     _|                                                     |_
    |            r                               l            |
    |                                                         |
    |  r                         o                         l  |
    |                                                         |
    |_           r                               l           _|
      |                                                     |
      |                                                     |
      |          r                               l          |
      |                                                     |
      |_____________________________________________________|
    100