Gente, já quebrei muito a cabeça e não consigo encontrar onde eu errei aqui pra dar Exception in thread “main” : Index -1 out of bounds for length 3 toda hora. Eu tô tentando construir um jogo da velha.
package celine;
import java.util.Scanner;
public class Lista5 { public static void main(String[]args) {
Scanner scan = new Scanner(System.in);
char Tabuleiro [][] = new char[3][3];
System.out.println(“Jogador 1=X”+"\n"+“Jogador 2=O”);
int jogada =1;
char valor =0;
boolean ganhou = false;
boolean linhaVálida = false;
boolean colunaVálida = false;
int linha = 0;
int coluna = 0;
while (!ganhou){
if (jogada % 2 != 0){
System.out.println("É a vez do jogador 1.");
valor = 'X';
} else if(jogada %2 == 0){
System.out.println(" É a vez do jogador 2.");
valor = 'O';
}
while(!linhaVálida) {
System.out.println("Digite a linha que você quer jogar, por favor(1-3)");
linha = scan.nextInt();
if(linha>=1&&linha<=3) {linhaVálida=true;}
else {System.out.println("A linha que você digitou é inválida. Digite novamente ");}
}
while(!colunaVálida) {
System.out.println("Digite a coluna que você quer jogar, por favor(1-3)");
coluna = scan.nextInt();
if(coluna>=1&&coluna<=3) {colunaVálida=true;}
else {System.out.println("A coluna que você digitou é inválida. Digite novamente ");}
}
linha--;coluna--;
if(Tabuleiro[linha][coluna]=='X' || Tabuleiro[linha][coluna]=='O'){
System.out.println("A posição que você escolheu já está ocupada. Tente novamente.");
}
else {
Tabuleiro[linha][coluna]=valor; jogada++;
}
for(int i=0;i<Tabuleiro.length;i++) {
for(int j=0;j<Tabuleiro[i].length;j++) {
System.out.print(Tabuleiro[i][j]+" | ");
}
System.out.println();
}
if((Tabuleiro[0][0]=='X' && Tabuleiro[0][1]=='X' && Tabuleiro[0][2]=='X')||
(Tabuleiro[1][0]=='X' && Tabuleiro[1][1]=='X' && Tabuleiro[1][2]=='X') ||
(Tabuleiro[2][0]=='X' && Tabuleiro[2][1]=='X' && Tabuleiro[2][2]=='X') ||
(Tabuleiro[0][0]=='X' && Tabuleiro[1][0]=='X' && Tabuleiro[2][0]=='X') ||
(Tabuleiro[0][1]=='X' && Tabuleiro[1][1]=='X' && Tabuleiro[2][1]=='X') ||
(Tabuleiro[0][2]=='X' && Tabuleiro[1][2]=='X' && Tabuleiro[2][2]=='X') ||
(Tabuleiro[0][0]=='X' && Tabuleiro[1][1]=='X' && Tabuleiro[2][2]=='X') ||
(Tabuleiro[0][2]=='X' && Tabuleiro[1][1]=='X' && Tabuleiro[2][0]=='X')
)
{ganhou=true;System.out.println("O jogador 1 ganhou. Parabéns!");}
else if((Tabuleiro[0][0]=='O' && Tabuleiro[0][1]=='O' && Tabuleiro[0][2]=='O')||
(Tabuleiro[1][0]=='O' && Tabuleiro[1][1]=='O' && Tabuleiro[1][2]=='O') ||
(Tabuleiro[2][0]=='O' && Tabuleiro[2][1]=='O' && Tabuleiro[2][2]=='O') ||
(Tabuleiro[0][0]=='O' && Tabuleiro[1][0]=='O' && Tabuleiro[2][0]=='O') ||
(Tabuleiro[0][1]=='O' && Tabuleiro[1][1]=='O' && Tabuleiro[2][1]=='O') ||
(Tabuleiro[0][2]=='O' && Tabuleiro[1][2]=='O' && Tabuleiro[2][2]=='O') ||
(Tabuleiro[0][0]=='O' && Tabuleiro[1][1]=='O' && Tabuleiro[2][2]=='O') ||
(Tabuleiro[0][2]=='O' && Tabuleiro[1][1]=='O' && Tabuleiro[2][0]=='O')
)
{ganhou=true;System.out.println("O jogador 2 ganhou. Parabéns!");}
else if(jogada>9) {System.out.println("Deu velha.");}
}}}