Alguém pode me ajudar a encontrar o erro e concerta-lo?
Só ta aparecendo O ‘x’ o ‘#’ que significa o barco não ta aparecendo.
package Testes;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Objects;
import java.util.Random;
public class testeb {
public static String[][] tabuleiro = new String[5][5];
public static int[][] posicao = new int[5][5];
public static int Linha = 5;
public static int Coluna = 5;
public static final int tamandoDobarco = 3;
public static final int quantidadeMaximaDoTabuleiro = 3;
public static void main(String[] args) {
System.out.println("O jogo iniciou!");
zeraPosicao();
posicaoDosNavios();
inicilizaMatriz();
imprimeTabuleiro();
verificaPosicao();
imprimeTabuleiro();
System.out.println("Parabéns você ganhou");
}
public static void zeraPosicao() {
for (int l = 0; l < 5; l++) {
for (int c = 0; c < 5; c++) {
posicao[l][c] = 0;
}
}
}
public static void posicaoDosNavios() {
Random rand = new Random();
for (int quantidadeDeBarcos = 0; quantidadeDeBarcos < quantidadeMaximaDoTabuleiro; ) {
int posicaoI = rand.nextInt(tamandoDobarco);
int posicaoJ = rand.nextInt(tamandoDobarco);
if (inserirBarco(posicaoI, posicaoJ)) {
quantidadeDeBarcos++;
}
}
}
public static boolean inserirBarco(int i, int j) {
if (i + tamandoDobarco <= Linha) {
if (!temBarcoNaColuna(i, j)) {
lerColuna();
return true;
}
} else if (j + tamandoDobarco <= Linha) {
if (!temBarcoNaColuna(i, j)) {
lerColuna();
return true;
}
}
return false;
}
public static boolean temBarcoNaColuna(int i, int j) {
if (contarPartesDoBarcoNaColuna(i, j, "#") == 0) return false;
else return true;
}
public static int contarPartesDoBarcoNaColuna(int i, int j, String symbol) {
int contarBarcos = 0;
for (int k = i; k < (i + tamandoDobarco); k++) {
if (tabuleiro[k][j] == symbol) contarBarcos++;
}
return contarBarcos;
}
public static int lerLinha() {
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Informe a linha ");
Linha = Integer.parseInt(entrada.readLine());
if (Linha >= 0 && Linha <= 5) {
return (Linha);
} else {
System.out.println("Linha invalida!!!");
return (lerLinha());
}
} catch (Exception e) {
System.out.println("Linha invalida!!!");
return (lerLinha());
}
}
public static int lerColuna() {
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
//int acert=14;
try {
System.out.println("Informe a coluna ");
Coluna = Integer.parseInt(entrada.readLine());
if (Coluna >= 0 && Coluna <= 4) {
return (Coluna);
} else {
System.out.println("Coluna invalida!!!");
return (lerColuna());
}
} catch (Exception e) {
System.out.println("Coluna invalida!!!");
return (lerColuna());
}
}
public static void inicilizaMatriz() {
for (int l = 0; l < 5; l++) {
for (int c = 0; c < 5; c++) {
tabuleiro[l][c] = " ";
}
}
}
public static void imprimeTabuleiro() {
System.out.println(" 0 1 2 3 4 5 ");
System.out.println(" _______________________");
for (int l = 0; l < 5; l++) {
System.out.print(l + " ");
for (int c = 0; c < 5; c++) {
System.out.print("| " + tabuleiro[l][c] + " ");
}
System.out.println("|");
System.out.println(" ________________________");
}
}
public static void verificaPosicao() {
int navio = 3;
int distroyer = 4;
int controladora = 0;
while (controladora == 0) {
int lin = lerLinha();
int col = lerColuna();
int escolha = posicao[lin][col];
System.out.println(escolha);
if (Objects.equals(tabuleiro[lin][col], " ")) {
switch (escolha) {
case 0 -> {
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("voce atirou na agua, tente novamente");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
tabuleiro[lin][col] = "X";
imprimeTabuleiro();
}
case 1 -> {
System.out.println("*************************");
System.out.println("voce acertou um navio = 1");
System.out.println("*************************");
tabuleiro[lin][col] = "#";
imprimeTabuleiro();
}
}
}
if (navio == 0 && distroyer == 0) {
controladora = 1;
} else if (controladora == 1) {
System.out.println("Parabéns você eliminou todos os itens e venceu o jogo!");
}
}
}
}