Class: MarsRover::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/mars_rover/runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_path) ⇒ Runner

Returns a new instance of Runner.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/mars_rover/runner.rb', line 6

def initialize(file_path)
  file = File.open(File.expand_path(file_path), 'r')
  output_file = File.open('ouput.txt', 'w')
  plateu_coordinates = file.readline.split(' ')
  @rovers = []
  @plateau = MarsRover::Plateau.new(plateu_coordinates[0].to_i, plateu_coordinates[1].to_i)

  while !file.eof?
    rover_position_line = file.readline.split(' ')
    rover_command_line = file.readline.strip
    rover = MarsRover::Rover.new(rover_position_line[0].to_i, 
                                     rover_position_line[1].to_i,
                                     rover_position_line[2], plateau)
    rover_command_line.each_char do |command|
      rover.run_command(command)
    end

    @rovers << rover
    output = "#{rover.x} #{rover.y} #{rover.direction}\n"
    output_file.write output
    puts output
  end
end

Instance Attribute Details

#plateauObject

Returns the value of attribute plateau.



4
5
6
# File 'lib/mars_rover/runner.rb', line 4

def plateau
  @plateau
end

#roversObject

Returns the value of attribute rovers.



4
5
6
# File 'lib/mars_rover/runner.rb', line 4

def rovers
  @rovers
end