exercism/go/robot-simulator
2018-06-21 08:54:16 -05:00
..
defs.go Finished go/minesweeper 2017-08-24 13:50:10 -05:00
README.md Finished go/minesweeper 2017-08-24 13:50:10 -05:00
robot_simulator_step2_test.go Started the kotlin track 2018-06-21 08:54:16 -05:00
robot_simulator_step3_test.go Finished go/minesweeper 2017-08-24 13:50:10 -05:00
robot_simulator_test.go Finished go/minesweeper 2017-08-24 13:50:10 -05:00
robot.go Started the kotlin track 2018-06-21 08:54:16 -05:00

Robot Simulator

Write a robot simulator.

A robot factory's test facility needs a program to verify robot movements.

The robots have three possible movements:

  • turn right
  • turn left
  • advance

Robots are placed on a hypothetical infinite grid, facing a particular direction (north, east, south, or west) at a set of {x,y} coordinates, e.g., {3,8}, with coordinates increasing to the north and east.

The robot then receives a number of instructions, at which point the testing facility verifies the robot's new position, and in which direction it is pointing.

  • The letter-string "RAALAL" means:
    • Turn right
    • Advance twice
    • Turn left
    • Advance once
    • Turn left yet again
  • Say a robot starts at {7, 3} facing north. Then running this stream of instructions should leave it at {9, 4} facing west.

Running the tests

To run the tests run the command go test from within the exercise directory.

If the test suite contains benchmarks, you can run these with the -bench flag:

go test -bench .

Keep in mind that each reviewer will run benchmarks on a different machine, with different specs, so the results from these benchmark tests may vary.

Further information

For more detailed information about the Go track, including how to get help if you're having trouble, please visit the exercism.io Go language page.

Source

Inspired by an interview question at a famous company.

Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.