33 lines
811 B
Ruby
33 lines
811 B
Ruby
module Turniere
|
|
class Matches
|
|
def self.generate_matches(teams)
|
|
if teams.size == 1
|
|
return #TODO error with only one team
|
|
end
|
|
needed_games = 0
|
|
if (Turniere::Utils.po2?(teams.size())
|
|
needed_games = teams.size() / 2
|
|
else
|
|
needed_games = teams.size() - Turniere::Utils.previous_power_of_two(teams.size()) / 2
|
|
end
|
|
|
|
lastPos = 0
|
|
matches = []
|
|
i = 0
|
|
|
|
while i < needed_games
|
|
match = Match(teams[2 * i], teams[( 2 * i ) + 1], 0, 0, :not_startet, i, false)
|
|
matches.insert match
|
|
i++
|
|
end
|
|
|
|
lastPos = i + 1
|
|
|
|
while teams.size() != 0
|
|
match = Match(teams[2 * i], teams[( 2 * i ) + 1], 0, 0, Match, i, false)
|
|
matches.insert match
|
|
end
|
|
return lastPos
|
|
end
|
|
end
|
|
end |