Nao esta na posição certa!

2 respostas
S
//rotina tiros
public void tiro(String tiros){
		mostraTabuleiro(tabuleiro);
		Scanner teclado = new Scanner(System.in);
		do{
			System.out.println("Tiros:");

			tiros = teclado.nextLine();
			Coordenada[] matriz = new Coordenada[3];
			String coordenada = "";
			int j = -1;
			for(int i = 0; i != tiros.length() && j != 2; ++i){
				char letra = tiros.charAt(i);
				if((letra >= 'A' && letra <= 'Z') || (letra >= '1' && letra <= '9') )
					coordenada += letra;

				if(i == tiros.length() -1 || letra == ' '){
					Coordenada coord = new Coordenada(coordenada);
					matriz[++j] = coord;
					coordenada = "";

				}
			}

			Coordenada[] fim = new Coordenada[j+1];
			for(int i = 0; i != j +1; ++i){
				fim[i] = matriz[i];
			}

			for(int i  = 0; i != fim.length; ++i){
				if (tabuleiro[fim[i].getLinha()][fim[i].getColuna()]>='1' && tabuleiro[fim[i].getLinha()][fim[i].getColuna()]<='5'){
					System.out.println("Tiro");
					tabuleiro[fim[i].getLinha()][fim[i].getColuna()]='X';
				}else System.out.println("Agua");
				tabuleiro[fim[i].getLinha()][fim[i].getColuna()]='~';
			}
			mostraTabuleiro(tabuleiro);
		} while(!tiros.trim().equals(""));

	}
//rotina mostra tabuleiro
public  void mostraTabuleiro(final char[][] tabuleiro) {

		//condição de teste para ver se o tabuleiro esta vazio
		assert tabuleiro != null : "A matriz esta vazia";

		//Imprime a matriz juntamente com as coordenadas
		System.out.print("___");
		for (int k = 0; k!=tabuleiro.length; ++k){
			if (k+1<10)
				System.out.print((k+1)+ "__");
			else 
				System.out.print((k+1)+ "_");
		}
		System.out.println();

		char c = 'A';
		for (int i= 0; i!=tabuleiro.length; ++i){
			System.out.print((char)(c+i)+ "__");

			for (int j = 0; j != tabuleiro.length; ++j){
				if(tabuleiro[i][j]>= '1' && tabuleiro[i][j] <= '9')
					System.out.print('.' + "__");
				else
					System.out.print(tabuleiro[i][j]+ "__");
			}
			System.out.println();
		}

	}

Boas pessoal, eu quando corro este programa e peço ao utilizador para dar umas coordenadas quaisquer para ver se é tiro ou nao, ele nao ta a ver a posição certa quando faz a verificação do caracter dentro da matriz tabuleiro! sera que me podem ajudar?? Obrigado.

2 Respostas

S

Problema resolvido, demorou faz foi, lol!

Foi so substituir matriz[++j] = coord; por matriz[++j] = new Coordenada (coord.getLinha()-1, coord.getColuna()-1);

I

Nada como usar o bom e velho debug, hein? :grin: T+

Criado 13 de dezembro de 2006
Ultima resposta 13 de dez. de 2006
Respostas 2
Participantes 2