class Tundengine::Stages::Tournament

Constants

SETTINGS_KEYS

Attributes

players[R]

TODO: Add a setting to run matches on multiple threads.

settings[R]

TODO: Add a setting to run matches on multiple threads.

Public Class Methods

new(players, settings) click to toggle source
Calls superclass method Tundengine::Stages::Base::new
# File lib/tundengine/stages/tournament.rb, line 10
def initialize(players, settings)
  @players  = players
  @settings = settings
  @result   = initial_result
  super()
end

Public Instance Methods

on_complete_child!(result) click to toggle source
# File lib/tundengine/stages/tournament.rb, line 26
def on_complete_child!(result)
  update_result!(result)
  super()
end
summary() click to toggle source
# File lib/tundengine/stages/tournament.rb, line 31
def summary
  {
    players: players.map(&:name),
    result: @result.each_with_object({}) { |(k,v),h| h[k.to_s] = v }
  }
end

Protected Instance Methods

children_key_name() click to toggle source
# File lib/tundengine/stages/tournament.rb, line 66
def children_key_name
  :matches
end
completed?() click to toggle source

TODO: Implement different criteria for finishing tournaments.

# File lib/tundengine/stages/tournament.rb, line 56
def completed?
  matches.length == max_matches
end
initial_result() click to toggle source
# File lib/tundengine/stages/tournament.rb, line 40
def initial_result
  @players.each_with_object({}) { |p, h| h[p] = 0 }
end
new_child() click to toggle source
# File lib/tundengine/stages/tournament.rb, line 44
def new_child
  Match.new(self, @players, match_settings)
end
on_completed!() click to toggle source
# File lib/tundengine/stages/tournament.rb, line 60
def on_completed!
  # for debugging purposes
  # puts 'Tournament completed. As hash:'
  # p as_hash
end
update_result!(match_result) click to toggle source

TODO: Implement different ways to accumulate match results.

# File lib/tundengine/stages/tournament.rb, line 49
def update_result!(match_result)
  @result.merge! match_result do |_, tournament_score, match_score|
    tournament_score + match_score
  end
end