Problema com Matrizes

6 respostas
Basilio
Galera estou tentando fazer um jogo de campo minado mas estou com um problema. Eu tenho uma matriz q representa o tabuleiro, essa matriz tem o valor -1 onde tem bomba e 0 nos outros lugares. Minha intensao eh dado uma linha e uma coluna, se la nao tiver bomba(valor -1), e nao existe mina de fronteira com esta posicao, esta posicao recebe -2 e as posicoes de fronteira tb recebem -2 recursivamente ate q todas as posicoes q nao tem fronteira e nem minas estejam com -2. Fiz o seguinte codigo e q deveria funcionar, mas nao da certo...
import java.util.Random;

public class matri {
	private int[][] matriz = new int[9][9];

	public void mostramatriz() {
		System.out.println();
		for (int i = 0; i < 9; i++) {
			for (int j = 0; j < 9; j++) {
				System.out.print("[" + matriz[i][j] + "]");
			}
			System.out.println();
		}
	}

	public void bombas() {
		Random aleatorio = new Random();
		int linha = aleatorio.nextInt(9), coluna = aleatorio.nextInt(9);
		int i = 0;
		while (i < 10) {
			if (matriz[linha][coluna] != -1) {
				matriz[linha][coluna] = -1;
				i++;
			} else {
				linha = aleatorio.nextInt(9);
				coluna = aleatorio.nextInt(9);
			}
		}
	}

	public void completaMatriz() {
		for (int i = 0; i < 9; i++) {
			for (int j = 0; j < 9; j++) {
				if (matriz[i][j] != -1) {
					matriz[i][j] = 0;
				}
			}
		}
	}

	public void clique(int linha, int coluna) {
		for (int i = linha - 1; i < linha + 1; i++) {
			for (int j = coluna - 1; j < coluna + 1; j++) {
				if ((j >= 0) && (i >= 0) && (j < 9) && (i < 9)) {
					if (matriz[i][j] == 0) {
						matriz[i][j] = -2;
						clique(i, j);
					}
				}
			}
		}
	}

	public static void main(String[] args) {
		matri m = new matri();
		m.bombas();
		m.completaMatriz();
		m.mostramatriz();
		m.clique(0, 0);
		System.out.println();
		m.mostramatriz();
	}
}

6 Respostas

thegoergen

Bah… assim no osso tu tá fazendo? Não seria melhor organizar um pouco mais? Com OO?

Tipo… um objeto para cada casa, e aí cada um tem sua posição e seus vizinhos definidos, daí você pode ir chamando recusrivamente, em cada casa que não tem bomba você “clica” nas vizinhas que também não tem, e estas refazem o processo…

Basilio

na verdade eu to fazendo usando uma matriz pq deveria ser mais simples, mas era pra recursividade funcionar aqui tb…(o metodoclique deveira fazer essa recursividade mas nao faz)

jolivier

Meu Amigo Random não e classe e um metodo da Classe Math e não precisa estaciar a Classe Math ela todos seus metodo são estaticos.

jolivier

descupa é estanciar

thegoergen

É instanciar…

jolivier

É ISSO AI

Criado 24 de novembro de 2008
Ultima resposta 24 de nov. de 2008
Respostas 6
Participantes 3