Fin qui hai solo individuato quali sono le partite da giocare non l'ordine in cui giocarle.
Le squadre hanno come nome un indice numerico. La partita 1-2 (12) è equivalente alla 2-1 (21) ossia dovendosi incontrare le due squadre una sola volta le due notazioni sono equivalenti.
il sistema dei due cicli annidati ti prende sempre quella con indice minore in prima posizione e scarta quelle che prevedono un indice maggiore del secondo in prima posizione (6 squadre):
Se ho già la 34 è inutile calcolare la 43 perchè sono equivalenti nel significato.codice:12 23 34 45 56 13 24 35 45 14 25 36 15 26 16
definito questo elenco inizi a selezionare la partite secondo l'ordine attesso.
Le prime partite le conosci sempre: 10 squadre?
0123456789
le partite ordinate saranno
0-1;2-3;4-5;6-7;8-9;
e le rimuovi dall'elenco delle partite da giocare che hai creato all'inizio.
Inizi il ciclo di calcolo per le partite successive individuando la squadra più riposata (0), la seconda più riposata e se la partita è da giocare (1 ma 0-1 è stata giocata 2 e 1-2 non è stata giocata - ancora presente nell'elenco che hai creato con i cicli annidati - quindi è questa la prossima partita [attenzione se estrai 5-1 lo devi cambiare in 1-5 che è presente fra le partite da giocare]) la estrai (rimuovi fiscamente) dalle partite da giocare e la aggiungi in coda alle partite ordinate. Se non individui una partita vuol dire che la prima squadra più riposata presa in considerazione ha giocato tutte le sue partite, quindi non giocherà più.
Così popoli le partite nell'ordine di gioco, estraendole da quelle che devono essere giocate. Quando l'elenco delle partite che devono essere giocate è vuoto (condizione di fine ciclo di calcolo), hai tutte le partite nell'ordine atteso nell'altro elenco (quello che abbiamo chiamato elenco della partite ordinate - quello in cui agigungevi le partite).
Il metodi con cui tradurre questo in codice sono molteplici... a furia di parlarne ne ho immaginati altri 3 più efficienti di quello realizzato.
Posso essere unpo' impiccione? Ma a che ti serve sta roba?![]()
![]()