05-10-2010, 05:46 PM
Bonjour,
j'aimerais avoir votre avis sur mon code.
l'algo est décris ici. pourquoi celui-là? C'est le seul (compréhensible) que j'ai trouvé avec une gestion d'alternance entre match joué à domicile et à l'extérieur
voici mon code:
je suis encore en cours de relecture mais, déjà, ca fonctionne pas mal
j'aimerais avoir votre avis sur mon code.
l'algo est décris ici. pourquoi celui-là? C'est le seul (compréhensible) que j'ai trouvé avec une gestion d'alternance entre match joué à domicile et à l'extérieur
voici mon code:
require 'pp'
def tournament(teams)
games = []
team_last_save = teams.last
#première journée
days = []
1.upto(teams.size/2) do |match|
days << [teams.slice!(0), teams.pop]
end
games << days
teams = days.flatten
#autres journées
1.upto(teams.size-2) do |day|
days = []
team1 = teams.pop
team2 = team_last_save
teams.delete(team2)
if (day%2==0)
days << [team1, team2]
else
days << [team2, team1]
end
(teams.size).downto(0) do |i|
if i%2 != 0
days << [teams[i-1], teams[i]]
end
end
games << days
teams = days.flatten
end
games
end
teams = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12]
pp tournament(teams)
je suis encore en cours de relecture mais, déjà, ca fonctionne pas mal