Bom dia! Estou fazendo uma questão sobre o jogo da velha e está quase pronta, vou mostrar o código. Eu queria saber um método para o jogador não repetir a mesma jogada, só isso está faltando. Já fiz o método do jogador 1 ou do jogador 2 vencerem e do empate também.
OBS: Estou utilizando o método de matriz.
public static void main(String[] args) {
int[][] matriz = new int[3][3];
int contJogadas = 0;
boolean jogo_nao_acabou = true;
Scanner entrada = new Scanner(System.in);
System.out.println("Matriz M[3][3]\n");
while(jogo_nao_acabou){
System.out.printf("Usuário 1, insira a LINHA que deseja jogar ");
int linha = entrada.nextInt();
System.out.printf("Usuário 1, insira a COLUNA que deseja jogar ");
int coluna = entrada.nextInt();
matriz[linha][coluna]=1;
if (matriz[0][0] ==1 && matriz[0][1] ==1 && matriz[0][2] ==1 ||
matriz[1][0] ==1 && matriz[1][1] ==1 && matriz[1][2] ==1 ||
matriz[2][0] ==1 && matriz[2][1] ==1 && matriz[2][2] ==1 ||
matriz[0][0] ==1 && matriz[1][0] ==1 && matriz[2][0] ==1 ||
matriz[0][1] ==1 && matriz[1][1] ==1 && matriz[2][1] ==1 ||
matriz[0][2] ==1 && matriz[1][2] ==1 && matriz[2][2] ==1 ||
matriz[0][0] ==1 && matriz[1][1] ==1 && matriz[2][2] ==1 ||
matriz[0][2] ==1 && matriz[1][1] ==1 && matriz[2][0] ==1) {
System.out.println("O jogador 1 venceu!");
int ganhou=1;
break;
}
System.out.printf("Usuário 2, insira a LINHA que deseja jogar ");
linha =entrada.nextInt();
System.out.printf("Usuário 2, insira a COLUNA que deseja jogar ");
coluna =entrada.nextInt();
matriz[linha][coluna]=2;
if (matriz[0][0] ==2 && matriz[0][1] ==2 && matriz[0][2] ==2 ||
matriz[1][0] ==2 && matriz[1][1] ==2 && matriz[1][2] ==2 ||
matriz[2][0] ==2 && matriz[2][1] ==2 && matriz[2][2] ==2 ||
matriz[0][0] ==2 && matriz[1][0] ==2 && matriz[2][0] ==2 ||
matriz[0][1] ==2 && matriz[1][1] ==2 && matriz[2][1] ==2 ||
matriz[0][2] ==2 && matriz[1][2] ==2 && matriz[2][2] ==2 ||
matriz[0][0] ==2 && matriz[1][1] ==2 && matriz[2][2] ==2 ||
matriz[0][2] ==2 && matriz[1][1] ==2 && matriz[2][0] ==2) {
System.out.println("O jogador 2 venceu!");
int ganhou = 1;
break;
}
if (matriz [0][0] !=0 && matriz [0][1] !=0 && matriz [0][2] !=0 &&
matriz [1][0] !=0 && matriz [1][1] !=0 && matriz [1][2] !=0 &&
matriz [2][0] !=0 && matriz [2][1] !=0 && matriz [2][2] !=0){
System.out.println("Empate!");
break;
}
System.out.println("\nA Matriz ficou: \n");
for(int linha1=0 ; linha1 < 3 ; linha1++){
for(int coluna1 = 0; coluna1 < 3 ; coluna1 ++){
System.out.printf("\t %d \t",matriz[linha1][coluna1]);
}
System.out.println();
}
}
}
}