11-07-2013, 03:11 PM
(11-07-2013, 02:56 PM)Ter Rowan a écrit :(11-07-2013, 09:49 AM)Sephi-Chan a écrit : Merci Ter Rowan !
mais de rien
PS c 'est fou, j'arrive même pas à comprendre ton code alors que c'est mon algo
C'est peut-être plus clair ainsi, en expliquant les petits spécificités de Ruby :
def dispatchable_groups_for_format(format, game_searches)
# J'initialise mes tableaux vides.
dispatched_player_ids = []
selected_game_searches = []
groups = []
# Je parcours les équipes (dans ma terminologie, les recherches de partie).
game_searches.each do |game_search|
# Je vérifie si la recherche a des joueurs en commun avec ma liste de joueurs. J'utilise pour cela l'opérateur d'intersection.
# Si l'intersection est vide, c'est qu'on n'a aucun joueur en commun et on descend donc dans l'algorithme, sinon on passe à l'itération suivante.
if (game_search.player_ids & dispatched_player_ids).empty?
# J'inscrit mes joueurs. J'utilise pour ça push. Le * sert à envoyer chaque élément du tableau plutôt que le tableau lui-même.
dispatched_player_ids.push(*game_search.player_ids)
# J'ajoute la recherche à la liste des recherches. << est un peu comme push.
selected_game_searches << game_search
if format.teams_count == selected_game_searches.size
groups << selected_game_searches
selected_game_searches = []
end
end
end
groups
end
(11-07-2013, 02:56 PM)Ter Rowan a écrit : PPS Julian prend deux places avec son cheval et ses chiens, de mémoire... ton cas test est pourri :p
Les animaux ne sont pas admis dans l'établissement ! :non: