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