class RobotToyJonhnes::RobotMover

Attributes

game[R]

Public Class Methods

new(game) click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 5
def initialize(game)
  @game = game
end

Public Instance Methods

to_east() click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 24
def to_east
  new_column_position = game.position_column + 1
  update_column_position new_column_position
end
to_local(new_line, new_column, new_orientation) click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 29
def to_local(new_line, new_column, new_orientation)
  can_save = PositionValidator.new_place_valid? new_line, new_column,
                                                new_orientation, game
  raise StandardError, 'Invalid place' unless can_save

  game.position_line = new_line.to_i
  game.position_column = new_column.to_i
  game.facing = new_orientation.upcase.to_sym
end
to_north() click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 9
def to_north
  new_line_position = game.position_line - 1
  update_line_position new_line_position
end
to_south() click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 14
def to_south
  new_line_position = game.position_line + 1
  update_line_position new_line_position
end
to_west() click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 19
def to_west
  new_column_position = game.position_column - 1
  update_column_position new_column_position
end

Private Instance Methods

update_column_position(new_position) click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 50
def update_column_position(new_position)
  can_save = PositionValidator.new_position_valid?(
    new_position, board_limit: game.board_width
  )
  raise StandardError, 'You reached the border' unless can_save

  game.position_column = new_position.to_i
end
update_line_position(new_position) click to toggle source
# File lib/robot_toy_jonhnes/robot_mover.rb, line 41
def update_line_position(new_position)
  can_save = PositionValidator.new_position_valid?(
    new_position, board_limit: game.board_height
  )
  raise StandardError, 'You reached the border' unless can_save

  game.position_line = new_position.to_i
end