class MyToyRobot::Simulator
Attributes
robot[R]
Public Class Methods
new(table)
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 4 def initialize(table) @table = table end
Public Instance Methods
invalid(command)
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 29 def invalid(command) puts "'#{command.strip}' is an invalid command" end
move()
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 13 def move return unless robot_placed? return unless @table.valid_location?(*robot.next_move) robot.move end
place(east, north, facing)
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 8 def place(east, north, facing) return unless @table.valid_location?(east, north) @robot = Robot.new(east, north, facing) end
report()
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 33 def report return unless robot_placed? position = robot.report puts "Robot is currently at (#{position[:east]}, #{position[:north]}) and it\'s facing #{position[:direction]}" end
robot_placed?()
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 39 def robot_placed? !robot.nil? end
turn_left()
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 19 def turn_left return unless robot_placed? robot.turn_left end
turn_right()
click to toggle source
# File lib/my_toy_robot/simulator.rb, line 24 def turn_right return unless robot_placed? robot.turn_right end