Ciao l'idea mia di sfruttare le tabelle di berger, ma che non è applicabile al caso tuo poichè tu vuoi far riposare due giocatori , era questa:
public class CreaCalendario {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String [] team={"","Roma","Milan","Juventus","Inter","Lazio","Riposo"};// il primo elemento è necessario nullo
// tabella di berger riferita a 6 giocatori (1 giocatore riposa)
// vettore casa contiene i numeri di squadra che giocano in casa presi riga per riga letti da sinistra a destra
// vettore fuiori contiene i numeri di squadra che giocano fuori casa presi riga per riga letti da sinistra a destra
int [] casa={1,2,3,6,5,1,2,3,4,6,1,2,3,4,5};
int [] fuori={6,5,4,4,3,2,6,1,5,5,4,3,6,2,1};
int indicegiornate=1;
for (int i = 0; i < casa.length; i++) {
if(i==0 )System.out.println((indicegiornate++)+"° Giornata");
// if(casa[i]!=6 && fuori[i]!=6)//se commento if, stamapa pure squadra che riposa
System.out.println(team[casa[i]]+" - "+team[fuori[i]]);
if((i+1)%((team.length-1)/2)==0 && i!=casa.length-1)
{
System.out.println(" ");
System.out.println((indicegiornate++)+"° Giornata");
}
}
}
}
il cui output è il seguente:
1° Giornata
Roma - Riposo
Milan - Lazio
Juventus - Inter
2° Giornata
Riposo - Inter
Lazio - Juventus
Roma - Milan
3° Giornata
Milan - Riposo
Juventus - Roma
Inter - Lazio
4° Giornata
Riposo - Lazio
Roma - Inter
Milan - Juventus
5° Giornata
Juventus - Riposo
Inter - Milan
Lazio - Roma
In questo caso ci sono 5 giocatori e ad ogni turno ne riposa uno. Se ne ripsassero 2 di giocatori , la giornata in cui si scontrano roposo1 vs riposo2 comprometterebbe tutto il calendario.