cavolo desa mi deve essere sfuggito quel suggerimento che mi avevi dato
Cmq ora funziona bene, anzi benissimo
Lascio il codice sul forum se dovesse un giorno servire a qualcuno
codice:
public class calendario{
public static void main(String[] args){
// creo la matrice con il numero di righe e colonne definite
int matrice[][] = new int[5][8];
int contatore=0;
do{
matrice=creaMatrice(matrice);
contatore++;
} while(verificaCoppie(matrice)==false);
for(int i=0;i<matrice.length;i++){
for(int j=0;j<matrice[0].length;j++){
System.out.print("["+matrice[i][j]+"] ");
}
System.out.println();
}
System.out.println("\nSono stati ben provati "+contatore+" accoppiamenti");
}
public static int[][]creaMatrice(int[][]matrice){
// cliclo l'array bidimensionale
for (int i = 0; i < matrice.length; i++) {
for (int j = 0; j < matrice[0].length; j++) {
// Inizio controllo numeri diversi per riga
boolean unico;
do
{
unico = true;
matrice[i][j] = (int)(Math.random()*8)+1;
for (int x = 0; x < j; x++)
{
if (matrice[i][j] == matrice[i][x])
{
unico = false;
}
}
} while (!unico);
}
}
return matrice;
}
//controlla che gli accoppiamenti siano tutti diversi
public static boolean verificaCoppie(int[][]matrice2){
for(int i=0;i<matrice2.length-1;i++){
for(int j=0;j<matrice2[0].length;j+=2){
for(int x=i+1;x<matrice2.length;x++){
for(int y=0;y<matrice2[0].length;y+=2){
if (matrice2[i][j] == matrice2[x][y] && matrice2[i][j + 1] == matrice2[x][y + 1] || matrice2[i][j] == matrice2[x][y + 1] && matrice2[i][j + 1] == matrice2[x][y])
{
return false;
}
}
}
}
}
return true;
}
}
Ti ringrazio veramente tanto per il supporto ch mi hai dato
Ora non mi resta che smanettare per creare una piccola interfaccia grafica e poi ho finito