Module: Berlin::AI::Node::Internal
- Included in:
- Berlin::AI::Node
- Defined in:
- lib/ai/node_internal.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#==(other) ⇒ Object
Used to compare if two nodes are the same.
- #initialize(options = {}) ⇒ Object
-
#link_to(other_node) ⇒ Object
Registers a given node as an adjacent one.
-
#reset! ⇒ Object
Reset information for new turn.
-
#to_i ⇒ Object
Somewhat useful.
- #to_s(options = {}) ⇒ Object
Class Method Details
.included(base) ⇒ Object
18 19 20 |
# File 'lib/ai/node_internal.rb', line 18 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#==(other) ⇒ Object
Used to compare if two nodes are the same
50 51 52 |
# File 'lib/ai/node_internal.rb', line 50 def ==(other) other.id == @id end |
#initialize(options = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/ai/node_internal.rb', line 22 def initialize(={}) @number_of_soldiers = 0 @player_id = nil @links = [] .each do |k,v| self.send("#{k}=", v) end end |
#link_to(other_node) ⇒ Object
Registers a given node as an adjacent one.
55 56 57 |
# File 'lib/ai/node_internal.rb', line 55 def link_to(other_node) @links << other_node end |
#reset! ⇒ Object
Reset information for new turn
39 40 41 42 |
# File 'lib/ai/node_internal.rb', line 39 def reset! self.incoming_soldiers = 0 self.available_soldiers = self.number_of_soldiers end |
#to_i ⇒ Object
Somewhat useful
45 46 47 |
# File 'lib/ai/node_internal.rb', line 45 def to_i @id.to_i end |
#to_s(options = {}) ⇒ Object
32 33 34 35 36 |
# File 'lib/ai/node_internal.rb', line 32 def to_s(={}) str = "<Berlin::AI::Node @id=#{@id} @player_id='#{@player_id}' @type='#{@type}' @points=#{@points} @soldiers_per_turn=#{@soldiers_per_turn} @number_of_soldiers=#{@number_of_soldiers} @incoming_soldiers=#{@incoming_soldiers} @available_soldiers=#{@available_soldiers} @adjacent_nodes=#{adjacent_nodes.map(&:id)}" .each { |key, val| str << " @#{key}=#{val}"} str << ">" end |