class Robulator::Robot
Constants
- ORIENTATIONS
- VALID_TURN
Attributes
direction[R]
position[R]
Public Instance Methods
move()
click to toggle source
# File lib/robulator/robot.rb, line 32 def move @position = next_position if next_position end
next_position()
click to toggle source
# File lib/robulator/robot.rb, line 26 def next_position return unless placed? axis, value = *ORIENTATIONS[direction][:move] position.merge({axis => position[axis] + value}) end
place(x, y, direction)
click to toggle source
# File lib/robulator/robot.rb, line 13 def place(x, y, direction) direction = direction.to_sym.downcase unless direction.is_a?(Symbol) return unless ORIENTATIONS.keys.include?(direction) @position = {x: Integer(x), y: Integer(y)} @direction = direction rescue ArgumentError end
placed?()
click to toggle source
# File lib/robulator/robot.rb, line 22 def placed? !!(direction && position) end
turn(relative_direction)
click to toggle source
# File lib/robulator/robot.rb, line 36 def turn(relative_direction) return if !placed? || !VALID_TURN.include?(relative_direction) @direction = ORIENTATIONS[direction][:turns][relative_direction] end