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
Calls superclass method
Tundengine::Stages::Base#on_complete_child!
# 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