alguém pode me ajudar com esse erro?
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Objects;
import java.util.Random;
import java.util.Scanner;
public class BatalhaNavaldnv {
public static int linha;
public static int coluna;
public static final int TAMANHO_DO_BARCO = 3;
public static final int QUANTIDADE_MAXIMA_DE_BARCOS = 3;
public static final int TAMANHO_TABULEIRO = 5;
public static String[][] gabaritoPlayer1 = new String[TAMANHO_TABULEIRO][TAMANHO_TABULEIRO];
public static String[][] gabaritoPlayer2 = new String[TAMANHO_TABULEIRO][TAMANHO_TABULEIRO];
public static String[][] tabuleiro1 = new String[TAMANHO_TABULEIRO][TAMANHO_TABULEIRO];
public static String[][] tabuleiro2 = new String[TAMANHO_TABULEIRO][TAMANHO_TABULEIRO];
public static char [][] navio;
public static void main(String[] args) {
inicioDeJogo();
executaJogada(tabuleiro1);
executaJogada(tabuleiro2);
}
public static void inicializaTabuleiro() {
System.out.println("O tabuleiro esta sendo criado. Aguarde um instante. ");
for (int i = 0; i < TAMANHO_TABULEIRO; i++) {
Arrays.fill(tabuleiro1[i], " . ");
Arrays.fill(tabuleiro2[i], " . ");
}
posicaoDosBarcos();
}
public static void posicaoDosBarcos() {
Random rand = new Random();
for (int quantidadeDeBarcos = 0; quantidadeDeBarcos < QUANTIDADE_MAXIMA_DE_BARCOS; ) {
int posicaoI = rand.nextInt(TAMANHO_TABULEIRO);
int posicaoJ = rand.nextInt((TAMANHO_TABULEIRO - TAMANHO_DO_BARCO));
if (inserirBarco(posicaoI, posicaoJ)) {
quantidadeDeBarcos++;
}
}
}
public static boolean inserirBarco(int i, int j) {
if (!temBarcoNaLinha(i, j)) {
int k;
for (k = j; k < (j + TAMANHO_DO_BARCO); k++) {
tabuleiro1[i][k]= " # ";
tabuleiro2[i][k]= " # ";
}
return true;
}
return false;
}
public static boolean temBarcoNaLinha(int i, int j) {
return contarPartesDoBarcoNaLinha(i, j, "#") != 0;
}
public static int contarPartesDoBarcoNaLinha(int i, int j, String symbol) {
int contarBarcos = 0;
for (int k = j; k < (j + TAMANHO_DO_BARCO); k++) {
if (tabuleiro1[i][k] == symbol) contarBarcos++;
if (tabuleiro2[i][k] == symbol) contarBarcos++;
}
return contarBarcos;
}
public static void inicioDeJogo() {
System.out.println("\n------Bem Vindo a Batalha Naval Para 2 Jogadores------");
Scanner ler = new Scanner(System.in);
System.out.print("Digite o nome do jogador 1: ");
String jogador1 = ler.nextLine();
System.out.print("Digite o nome do jogador 2: ");
String jogador2 = ler.nextLine();
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
System.out.println("\n== Vez do jogador " + jogador1 + " ==");
executaJogada(tabuleiro1);
}else{
System.out.println("\n== Vez do jogador " + jogador2 + " ==");
executaJogada(tabuleiro2);
}
System.out.println();
mostraTabuleiro();
if (verificaPosicao()) {
if (i % 2 == 0) {
System.out.println("Jogador1 Ganhou!");
break;
} else {
System.out.println("Jogador2 Ganhou!");
}
} else if (i == 5) {
System.out.println("Fim de jogo, nao houve ganhadores");
}
}
}
public static void executaJogada(String[][] tabuleiro1) {
inicializaTabuleiro();
//inserirBarco();
mostraGabarito();
mostraTabuleiro();
lerLinha();
lerColuna();
}
public static int lerLinha() {
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Informe a linha: ");
linha = Integer.parseInt(entrada.readLine());
if (linha >= 0 && linha <= 6) {
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));
try {
System.out.print("Informe a coluna: ");
coluna = Integer.parseInt(entrada.readLine());
if (coluna >= 0 && coluna <= 6) {
return (coluna);
} else {
System.out.println("Coluna invalida!");
return (lerColuna());
}
} catch (Exception e) {
System.out.println("Coluna invalida!");
return (lerColuna());
}
}
public static void mostraGabarito(){
for(int i = 0; i < TAMANHO_TABULEIRO; i++){
for(int j = 0; j < TAMANHO_TABULEIRO; j++){
System.out.print(tabuleiro1[i][j]);
}
System.out.print(" ");
for(int j = 0; j < TAMANHO_TABULEIRO;j++){
System.out.print(tabuleiro2[i][j]);
}
System.out.println();
}
}
public static void mostraTabuleiro(){
System.out.println();
System.out.print(" ");
for(int i = 0; i < TAMANHO_TABULEIRO; i++){
System.out.print(" " + (i+1));
}
System.out.print(" ");
for(int i = 0; i < TAMANHO_TABULEIRO; i++){
System.out.print(" " + (i+1));
}
System.out.println();
for(int i = 0; i < TAMANHO_TABULEIRO; i++){
System.out.print((i+1)+"|");
for(int j = 0; j < TAMANHO_TABULEIRO; j++){
System.out.print(tabuleiro1[i][j]);
}
System.out.print(" ");
System.out.print((i+1)+"|");
for(int j = 0; j < TAMANHO_TABULEIRO;j++){
System.out.print(tabuleiro2[i][j]);
}
System.out.println();
}
System.out.println();
}
public static boolean verificaPosicao() {
int quantPartesNavios = QUANTIDADE_MAXIMA_DE_BARCOS * TAMANHO_DO_BARCO;
while (quantPartesNavios > 0) {
int lin = lerLinha();
int col = lerColuna();
if (Objects.equals(tabuleiro1[lin][col], " 3 ")) {
if (Objects.equals(tabuleiro2[lin][col], " 3 ")){
System.out.println("~~~~");
System.out.println("Voce atirou na agua, tente novamente!");
System.out.println("~~~~");
gabaritoPlayer1[lin][col] = "~";
gabaritoPlayer2[lin][col] = "~";
}
} else if (Objects.equals(tabuleiro1[lin][col], "1")) {
System.out.println("***");
System.out.println("Voce acertou um navio");
System.out.println("***");
gabaritoPlayer1[lin][col] = "x";
gabaritoPlayer2[lin][col] = "x";
quantPartesNavios--;
}
else if (Objects.equals(tabuleiro2[lin][col], "1")) {
System.out.println("***");
System.out.println("Voce acertou um navio");
System.out.println("***");
gabaritoPlayer1[lin][col] = "x";
gabaritoPlayer2[lin][col] = "x";
quantPartesNavios--;
}
}
System.out.println("Parabens, você eliminou todos os barcos e venceu o jogo!");
return false;
}
}