Erro na Batalha naval em java

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!");
            }
        }
    }
}