53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
|
# 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](http://exercism.io/languages/go/about).
|
||
|
|
||
|
## 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.
|