Salve ragazzi sto sviluppando un software che replica il gioco del futoshiki io ho pensato di creare una matrice random cioè una matrice di int scelti a caso tramite il metodo Math.random().
Però ho riscontrato un problema non indifferente :secondo il modo in cui ho implementato la classe
la realizzazione della matrice avviene in maniera motlo lenta o addirittura entra in un ciclo infinito.
Posto parte del codice
public class MatriceRandom {
int m[][];
public MatriceRandom(){
m=new int [5][5];
int i=0;
int a[]=new RandomArray().getArray();
while(i<5){
for(int j=0;j<5;j++){
m[i][j]=new RandomArray().costruisci();
if(i==0)
m[i][j]=a[j];
if(i==1 && j==0)
while(m[i][j]==m[i-1][j])
m[i][j]= new RandomArray().costruisci();
if(i==1 && j==1)
while(m[i][j]==m[i][j-1] || m[i][j]==m[i-1][j])
m[i][j]= new RandomArray().costruisci();
if(i==1 && j==2)
while(m[i][j]==m[i][j-1] || m[i][j]==m[i-1][j] || m[i][j-2]==m[i][j] )
m[i][j]= new RandomArray().costruisci();
if(i==1 && j==3)
while(m[i][j]==m[i][j-1] || m[i][j]==m[i-1][j] || m[i][j-2]==m[i][j] || m[i][j]==m[i][j-3] )
m[i][j]= new RandomArray().costruisci();
if(i==1 && j==4)
while(m[i][j]==m[i][j-1] || m[i][j]==m[i-1][j] || m[i][j-2]==m[i][j] || m[i][j]==m[i][j-3] || m[i][j]==m[i][j-4])
m[i][j]= new RandomArray().costruisci();
if(i==2 && j==0)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j])
m[i][j]= new RandomArray().costruisci();
if(i==2 && j==1)
while(m[i][j]==m[i][j-1]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j])
m[i][j]= new RandomArray().costruisci();
if(i==2 && j==2)
while(m[i][j]==m[i][j-1]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i][j-2])
m[i][j]= new RandomArray().costruisci();
if(i==2 && j==3)
while(m[i][j]==m[i][j-1]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j] || m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3])
m[i][j]= new RandomArray().costruisci();
if(i==2 && j==4)
while(m[i][j]==m[i][j-1]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3]||m[i][j]==m[i][j-4])
m[i][j]= new RandomArray().costruisci();
if(i==3 && j==0)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j])
m[i][j]= new RandomArray().costruisci();
if(i==3 && j==1)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j] || m[i][j]==m[i][j-1])
m[i][j]= new RandomArray().costruisci();
if(i==3 && j==2)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j] || m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2])
m[i][j]= new RandomArray().costruisci();
if(i==3 && j==3)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j] || m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3])
m[i][j]= new RandomArray().costruisci();
if(i==3 && j==4)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j] || m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3]||m[i][j]==m[i][j-3])
m[i][j]= new RandomArray().costruisci();
if(i==4 && j==0)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j]||m[i-4][j]==m[i][j])
m[i][j]= new RandomArray().costruisci();
if(i==4 && j==1)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j]||m[i-4][j]==m[i][j]|| m[i][j]==m[i][j-1])
m[i][j]= new RandomArray().costruisci();
if(i==4 && j==2)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j]||m[i-4][j]==m[i][j]|| m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2])
m[i][j]= new RandomArray().costruisci();
if(i==4 && j==3)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j]||m[i-4][j]==m[i][j]|| m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3])
m[i][j]= new RandomArray().costruisci();
if(i==4 && j==4)
while(m[i][j]==m[i-1][j]||m[i][j]==m[i-1][j]||m[i][j]==m[i-2][j]||m[i][j]==m[i-3][j]||m[i-4][j]==m[i][j]|| m[i][j]==m[i][j-1]||m[i][j]==m[i][j-2]||m[i][j]==m[i][j-3]||m[i][j]==m[i][j-4])
m[i][j]= new RandomArray().costruisci();
}
i++;
}
}
il metodo costruisci di RadomaArray restiuisce a caso un int tra 1 e 5 visto che la matrice è 5x5
Nell'attesa di una risposta mando i miei più cordiali saluti a tutti.