Originariamente inviato da Carlitos84
Ciao Kaamos e grazie per la risposta, tuttavia non mi è molto chiara la cosa...per "girarmela come mi pare" dovrei cambiare i valori degli indici dei 2 for?
Vuoi che [0][0] sia l'indice in basso a sinistra? Bene, comportati come se lo fosse.
Gli indici sono solo valori che scegli tu come tu utilizzare... l'importante è ricordarsi delle proprie scelte: se hai un dato da mettere "in basso a sinistra" mettilo nella cella [0][0], basta che poi ti ricordi che, quando qualcuno chiederà l'elemento "in basso a sinistra", dovrai dargli quello che sta nella cella [0][0].
Originariamente inviato da Carlitos84
Salve ragazzi..allora la matrice la vedo come un piano cartesiano adesso ho usato due for per riempirla:
for(int i=m-1; i>=0; i--){
for(int j=0; j<m; j++){
boolean b = random.nextBoolean();
if(b==true)
matrix[i][j]=1;
else
matrix[i][j]=0;
}
}
yessssssss
mi resta da capire come creare un metodo che deve contarmi gli uno su quella retta immaginaria passante dall'elemento di posizione [0][0] e l'elemento [a][b] ((a,b) sono coordinate che passo come parametro al metodo)..
Piccolo appunto, puoi scrivere quel codice in maniera più compatta:
codice:
for (int i = m - 1; i >= 0; i--)
for (int j = 0; j < m; j++)
matrix[i][j] = random.nextInt(2);
Per la retta, apparte quelle verticali, orizzontali e diagonali inclinate di 45 °, bisogna necessariamente scegliere dove metterei dei "gradini", dei "salti".
Nella matrice 5x5 ad esempio:
codice:
0 1 2 3 4
0 x x x x x
1 x x x x x
2 x x x x x
3 x x x x x
4 x x x x x
Se devi tracciare la retta da (0, 0) a (1, 4) (quando scrivo le coppie intendo (riga, colonna)) devi decidere a che colonna passare dalla riga 0 alla riga 1, e senza avere l'equazione della retta (che tu non hai a disposizione) non ti resta che scegliere una colonna qualsiasi... in questo caso, la scelta più naturale sarebbe scendere di una riga alla colonna 2, che è a metà strada: potresti generalizzare questo caso banale decidendo che, se la differenza di quota dal punto di partenza al punto di arrivo è una riga, a metà strada (arrotondando) scendi di una riga, se la differenza di righe è 2 scendi di una riga a un terzo della strada e di un'altra riga a due terzi della strada, e così via... con le dovute approssimazioni. In una matrice un po' più grande dovrebbe funzionare decentemente.