Boa Tarde,
Galera levando em conta uma matriz preenchida com zeros , como faço pra gerar um número em uma posição aleatória dentro dela.
E como poderia fazer uma função para movimentar esse número de uma forma aleatória?
Boa Tarde,
Galera levando em conta uma matriz preenchida com zeros , como faço pra gerar um número em uma posição aleatória dentro dela.
E como poderia fazer uma função para movimentar esse número de uma forma aleatória?
Qual a estrutura da matriz? Supondo que os números se sobreponham, o que aconteceria?
Para criar números aleatórios:
Random r = new Random();
int numero = r.nextInt();
int c = r.nextInt(matriz.colunas);
int l = r.nextInt(matriz.linhas);
matriz.atribuir(l, c, numero);
Matriz de 30 linhas e 60 colunas , se sobrepor os 2 sumiram , ou seja ficaria 0
Para construir matriz aleatória
para fazer movimentar seria mais ou menos:
for (c = 0; c < qtdDeColunas; c++) {
for (l = 0; l < qtdDeLinhas; l++) {
numero = matriz[l][c];
if (numero != 0) {
direção = random.nextInt(4);
switch(direcao) {
// move para cima
case 0: proximaColuna = c; proximaLinha = l - 1; break;
// as outras direcoes
}
matriz[proximaLinha][proximaColuna] = numero;
matriz[l][c] = 0;
}
}
}
Entendi , mas ainda to tentando dificuldade pra gerar .
Ficou assim meu codigo,porém não esta indo para uma posição aleatoria.
Como eu faço para eu gerar um x e y por exemplo que seria(Linhas e colunas) respectivamente que o numero deveria aparecer ?
public void gerarCarro(){
c.add(new Carro()) //Adicionar Carro na arrayList
for(int x = 0; x < matrix.length; x++){
for (int i = 0; i < matrix[x].length; i++){
if(m[x][i]!= 0 && m[x][i]!=2 & m[x][i]!=1){
m[x][i]= 3;
break; // utilizei o break para ser um 3 apenas mas apareceu um monte kkk
}
}
}
public void gerarCarro(){
c.add(new Carro()) //Adicionar Carro na arrayList
boolean colocouTres = false;
for(int x = 0; x < matrix.length && colocouTres == false; x++){
for (int i = 0; i < matrix[x].length && colocouTres == false; i++){
if(m[x][i]!= 0 && m[x][i]!=2 & m[x][i]!=1){
m[x][i]= 3;
// break; // utilizei o break para ser um 3 apenas mas apareceu um monte kkk
colocouTres = true;
}
}
}
Pode colocar uma variável de controle ou substitua o break;
por return;