//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.
T+