def main():
state = GameState()<EOL>print(state)<EOL>while state.running:<EOL><INDENT>input = get_single_char()<EOL>state, should_advance = state.handle_input(input)<EOL>if should_advance:<EOL><INDENT>state = state.advance_robots()<EOL>state = state.check_game_end()<EOL><DEDENT>print(state)<EOL><DEDENT>print(state.message)<EOL>
The main function. Instantiates a GameState object and then
    enters a REPL-like main loop, waiting for input, updating the state
    based on the input, then outputting the new state.