Tracks
/
Factor
Factor
/
Exercises
/
Robot Simulator
Robot Simulator

Robot Simulator

Medium

Instructions

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.

Words

Define a robot tuple with slots x, y, and direction. The direction slot holds one of the symbols north, east, south, or west (declared in this exercise's vocabulary).

  • <robot> ( x y direction -- robot ) — construct a robot.
  • move ( robot instructions -- robot ) — apply a string of R, L, and A instructions and return the updated robot.

Source

Inspired by an interview question at a famous company.
Edit via GitHub The link opens in a new window or tab
Factor Exercism

Ready to start Robot Simulator?

Sign up to Exercism to learn and master Factor with 47 concepts163 exercises, and real human mentoring, all for free.