Class: RoboDog::Simulation

Inherits:
Object
  • Object
show all
Defined in:
lib/robo_dog/simulation.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Simulation

Returns a new instance of Simulation.



3
4
5
6
# File 'lib/robo_dog/simulation.rb', line 3

def initialize(args = {})
  @paddock = args[:paddock]
  @robots = args[:robots] || []
end

Instance Method Details

#reportObject



19
20
21
22
23
# File 'lib/robo_dog/simulation.rb', line 19

def report
  {
    robots: robots.map { |r| r.report }
  }
end

#run(mode = :sequential) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/robo_dog/simulation.rb', line 8

def run(mode = :sequential)
  mode ||= :sequential
  warm_up
  case mode
  when :sequential
    robots.each { |r| r.execute(:all) }
  when :turns
    run_in_turns
  end
end

#valid_coordinates?(coordinates) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
# File 'lib/robo_dog/simulation.rb', line 25

def valid_coordinates?(coordinates)
  coordinates &&
  paddock.valid_coordinates?(coordinates) &&
  robots.all? { |r| r.coordinates != coordinates } ||
  fail_appropriately
end