Class: Robot::Position

Inherits:
Object
  • Object
show all
Defined in:
lib/robot/position.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(point: Point.new(x: 0, y: 0), direction: Robot::Directions::NORTH) ⇒ Position

Returns a new instance of Position.



9
10
11
12
# 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

Instance Attribute Details

#directionObject (readonly)

Returns the value of attribute direction.



7
8
9
# File 'lib/robot/position.rb', line 7

def direction
  @direction
end

#pointObject (readonly)

Returns the value of attribute point.



7
8
9
# File 'lib/robot/position.rb', line 7

def point
  @point
end

Instance Method Details

#==(other) ⇒ Object



38
39
40
# File 'lib/robot/position.rb', line 38

def ==(other)
  point == other.point && direction == other.direction
end

#eastObject



22
23
24
# File 'lib/robot/position.rb', line 22

def east
  Position.new(point: point.east, direction: direction)
end

#leftObject



30
31
32
# File 'lib/robot/position.rb', line 30

def left
  Position.new(point: point, direction: lefts[direction])
end

#northObject



14
15
16
# File 'lib/robot/position.rb', line 14

def north
  Position.new(point: point.north, direction: direction)
end

#rightObject



34
35
36
# File 'lib/robot/position.rb', line 34

def right
  Position.new(point: point, direction: rights[direction])
end

#southObject



18
19
20
# File 'lib/robot/position.rb', line 18

def south
  Position.new(point: point.south, direction: direction)
end

#to_sObject



42
43
44
# File 'lib/robot/position.rb', line 42

def to_s
  "#{point}, #{direction}"
end

#westObject



26
27
28
# File 'lib/robot/position.rb', line 26

def west
  Position.new(point: point.west, direction: direction)
end