class Berlin::AI::Map

Map keeps track of all the useful information needed to play, such as nodes, points, soldiers, etc. Game will then be able to pick any information it wants from map to decide what are the best moves to do.

Attributes

directed[RW]
nodes_hash[RW]
player_id[RW]

Public Instance Methods

controlled_nodes() click to toggle source

We can now loop on our owned nodes in order to find our controlled nodes.

# File lib/ai/map.rb, line 37
def controlled_nodes
  owned_nodes.select{ |n| n.occupied? }
end
directed?() click to toggle source

Is the map directed?

# File lib/ai/map.rb, line 42
def directed?
  @directed
end
enemy_nodes() click to toggle source

Returns an array of all enemy nodes

# File lib/ai/map.rb, line 22
def enemy_nodes
  nodes.select{ |n| n.enemy? }
end
foreign_nodes() click to toggle source

Returns an array of all nodes that we don’t owned

# File lib/ai/map.rb, line 32
def foreign_nodes
  nodes.select{ |n| n.foreign? }
end
free_nodes() click to toggle source

Returns an array of all free nodes

# File lib/ai/map.rb, line 27
def free_nodes
  nodes.select{ |n| n.free? }
end
nodes() click to toggle source

Returns an array of all nodes of the map

# File lib/ai/map.rb, line 12
def nodes
  @nodes_hash.values
end
owned_nodes() click to toggle source

Returns an array of all owned nodes

# File lib/ai/map.rb, line 17
def owned_nodes
  nodes.select{ |n| n.mine? }
end