Jogo da Velha

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();
            }
           
        }
}

}

Você pode colocar este código dentro de um do while, para que ele repita enquanto matriz[linha][coluna] for diferente de zero

Quero saber como faz para o jogador NÃO repetir a mesma jogada. Exemplo:

O usuário escolheu a linha 1 e a coluna 1, o usuário 2 escolheu a linha 1 e coluna 2.

Aí na próxima jogada do usuário 1 vamos supor que ele use a linha 1 e a coluna 1 novamente por equívoco, queria por um aviso dizendo que o jogador JÁ FEZ essa jogada, tendeu? Isso evita que o jogo fique repetitivo.

então, quando o usuário escolhe a linha 1 e coluna 1 o valor da matriz nessa posição será alterado, logo, colocando aquele loop que mencionei antes, sempre que a posição for diferente de zero (já foi utilizada) ele ira pedir as linhas. assim não havera jogadas repetidas

Entendi agora, desculpa a má interpretação. Muito obrigado !!