Olá a todos, estou com o seguinte problema, eu queria usar o método set pra “setar” um valor numa posição de um vetor bidimensional, mas eu não como, ou melhor, quais os argumentos eu eu uso.
Segue abaixo os códigos:
/*
* Ambiente.java
*
* Created on 11 de Setembro de 2006, 20:07
*/
package ambiente;
import aspirador.Aspirador;
import java.util.Random;
/**
* @author Fábio Curtis Volpe
*/
public class Ambiente {
public Ambiente() {
setN(8);
setQuadrado(new int[getN()][getN()]);
ambienteOk();
}
/* método responsável pela inicialização inicial e final do ambiente para o
* aspirador
*/
private void ambienteOk() {
for(setI(0); getI()<getN(); setI(getI() + 1)) {
for (setJ(0); getJ()<getN(); setJ(getJ() + 1)) {
getQuadrado()[getI()][getJ()] = 0; // ambiente inicialmente/finalmente limpo
}
}
setStatus(true); // ambiente limpo por completo
exibirAmbiente();
}
/*
* 0 --> limpo
* 1 --> sujeira
* 2 --> sujeita + móvel
* 3 --> movel
*/
private void inicializoAmbiente() {
setStatus(false); // ambiente total está sujo
Random randomNumbers = new Random(); // gerador de números aleatórios
// inicializo a sujeira de forma random
for(setI(0); getI()<getN(); setI(getI() + 1)) {
for (setJ(0); getJ()<getN(); setJ(getJ() + 1)) {
// seleciona um inteiro de 0 a 3
getQuadrado()[getI()][getJ()] = 0 + randomNumbers.nextInt(3);
}
}
exibirAmbiente();
}
private void exibirAmbiente() {
if (isStatus() == true) {
System.out.println("Ambiente Limpo e Sem Mobilhas ...");
System.out.printf("\n");
for(setI(0); getI()<getN(); setI(getI() + 1)) {
for (setJ(0); getJ()<getN(); setJ(getJ() + 1)) {
System.out.printf("%2d",getQuadrado()[getI()][getJ()]);
}
System.out.printf("\n");
}
System.out.printf("\n");
inicializoAmbiente(); // ambiente acabou de ficar sujo, inicializo a sujeita
} else {
System.out.println("Ambiente Sujo e com Mobilhas...");
System.out.printf("\n");
for(setI(0); getI()<getN(); setI(getI() + 1)) {
for (setJ(0); getJ()<getN(); setJ(getJ() + 1)) {
System.out.printf("%2d",getQuadrado()[getI()][getJ()]);
}
System.out.printf("\n");
}
}
}
public int getN() {
return n;
}
public void setN(int n) {
this.n = n;
}
public int[][] getQuadrado() {
return quadrado;
}
public void setQuadrado(int[][] quadrado) {
this.quadrado = quadrado;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public int getJ() {
return j;
}
public void setJ(int j) {
this.j = j;
}
private int i,j;
private int n; // índice da matriz quadrado
private int[][] quadrado; // área do ambiente
private boolean status; // ambiente limpo por completo - true -> limpo false -> sujo
}
/*
* Aspirador.java
*
* Created on 12 de Setembro de 2006, 15:00
*/
package aspirador;
import ambiente.Ambiente;
import java.util.Random;
/**
* @author Fábio Curtis Volpe
*/
public class Aspirador {
// classe responsável pela inicialização do ambiente
Ambiente ambiente = new Ambiente();
public Aspirador() {
pInicial();
}
private void pInicial() {
System.out.printf("\n");
System.out.printf("Posição Inicial Aspirador");
System.out.printf("\n");
/*
* inicializo o aspirador numa posição randômica
* 4 --> aspirador
*/
Random randomNumbers = new Random(); // gerador de números aleatórios para a Linha
linha = 0 + randomNumbers.nextInt(ambiente.getN()); // 0 até n
coluna = 0 + randomNumbers.nextInt(ambiente.getN()); // o até n
ambiente.setQuadrado();
}
private int[][] pXy; // posição do aspirador no ambiente
private int linha;
private int coluna;
}
No ambiente.setQuadrado(); eu queria passar para a posição da linha e coluna o valor 4 para o quadrado do Ambiente.java.
Muito obrigado
Fábio