class Robot::Position
Attributes
direction[R]
point[R]
Public Class Methods
new(point: Point.new(x: 0, y: 0), direction: Robot::Directions::NORTH)
click to toggle source
# File lib/robot/position.rb, line 9 def initialize(point: Point.new(x: 0, y: 0), direction: Robot::Directions::NORTH) @point = point @direction = direction end
Public Instance Methods
==(other)
click to toggle source
# File lib/robot/position.rb, line 38 def ==(other) point == other.point && direction == other.direction end
east()
click to toggle source
# File lib/robot/position.rb, line 22 def east Position.new(point: point.east, direction: direction) end
left()
click to toggle source
# File lib/robot/position.rb, line 30 def left Position.new(point: point, direction: lefts[direction]) end
north()
click to toggle source
# File lib/robot/position.rb, line 14 def north Position.new(point: point.north, direction: direction) end
right()
click to toggle source
# File lib/robot/position.rb, line 34 def right Position.new(point: point, direction: rights[direction]) end
south()
click to toggle source
# File lib/robot/position.rb, line 18 def south Position.new(point: point.south, direction: direction) end
to_s()
click to toggle source
# File lib/robot/position.rb, line 42 def to_s "#{point}, #{direction}" end
west()
click to toggle source
# File lib/robot/position.rb, line 26 def west Position.new(point: point.west, direction: direction) end
Private Instance Methods
lefts()
click to toggle source
# File lib/robot/position.rb, line 48 def lefts { Robot::Directions::EAST => Robot::Directions::NORTH, Robot::Directions::NORTH => Robot::Directions::WEST, Robot::Directions::WEST => Robot::Directions::SOUTH, Robot::Directions::SOUTH => Robot::Directions::EAST }.freeze end
rights()
click to toggle source
# File lib/robot/position.rb, line 57 def rights { Robot::Directions::EAST => Robot::Directions::SOUTH, Robot::Directions::SOUTH => Robot::Directions::WEST, Robot::Directions::WEST => Robot::Directions::NORTH, Robot::Directions::NORTH => Robot::Directions::EAST }.freeze end