class ConnectStrategy

Public Instance Methods

connect(archipelago) click to toggle source

@param archipelago {Archipelago} The archipelago to connect @api

# File lib/gimuby/genetic/archipelago/connect_strategy/connect_strategy.rb, line 6
def connect(archipelago)
  raise NotImplementedError
end

Protected Instance Methods

check_connections_to_make(connections_to_make, nodes) click to toggle source
# File lib/gimuby/genetic/archipelago/connect_strategy/connect_strategy.rb, line 29
def check_connections_to_make(connections_to_make, nodes)
  if nodes.length * (nodes.length - 1) < connections_to_make
    raise 'Not enough nodes'
  end
end
get_nodes(archipelago) click to toggle source
# File lib/gimuby/genetic/archipelago/connect_strategy/connect_strategy.rb, line 24
def get_nodes(archipelago)
  populations_count = archipelago.populations.length
  return *(0..populations_count - 1)
end
make_fully_connected(archipelago, nodes) click to toggle source
# File lib/gimuby/genetic/archipelago/connect_strategy/connect_strategy.rb, line 12
def make_fully_connected(archipelago, nodes)
  nodes.each do |node1|
    nodes.each do |node2|
      if node1 < node2
        archipelago.connect(node1, node2)
        archipelago.connect(node2, node1)
      end
    end
  end
  nodes.length * (nodes.length - 1) * 2
end