Jogo 2 ou 1! Ajuda por favor!

Bom dia Galera!

sou estudante de Analise e Desenvolvimento de Sistema, tenho um trabalho para entregar e já tentei fazer de tudo e consigo resolver alguns problemas no meu codigo.

segue meu codigo e as duvidas.

Detalhe o codigo roda no cmd do windows sem IDE.

import java.util.Scanner;

public class JogoDoisOuUm{
    public static void main(String[] args) {
        
        System.out.println("Neste Jogo o vencedor é aquele que escolhe o numero diferente entre três participantes");
        
        int N = 0; // N representa o total de partidas que serão jogadas.
        
        int A,B,C; // Essas variaveis representam os 3 jogadores.
     
        Scanner entrada = new Scanner(System.in); // criei o objeto entrada.
        
        System.out.println("Escolha quantas partidas serão jogadas: ");
        Scanner n = new Scanner(System.in);
        N = n.nextInt(); // li o valor de N
          
        while(N > 0){
            System.out.println("O Jogador A escolha 2 ou 1: ");
            A = entrada.nextInt();
            if(A < 1 || A > 2){
                System.out.println("Numero Invalido Digite 2 ou 1"); // aqui vem o primeiro problema, se o jogador colocar 3 da a mensagem de numero invalido mas não volta para o valor de A e sim continua com o valor de B. já criei else, break e não resolve
            }
        
        System.out.println("O Jogador B escolha 2 ou 1: ");
        B = entrada.nextInt();
        if(B < 1 || B > 2){
            System.out.println("Numero Invalido Digite 2 ou 1");
        }
        
        System.out.println("O Jogador C escolha 2 ou 1: ");
        C = entrada.nextInt();
      
        if(A != B && A != C){
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador A Foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        }else if(B != C && B != A) {
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador B foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        }else if(C != A && C != B){
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador C foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        }else{
            System.out.println("---------------------------------------------");
            System.out.println("O Jogo está empatado vamos a proxima Rodada: ");
            System.out.println("---------------------------------------------");
        }
        
        N--;
        if(N <= 0){
        System.out.println("---------------------------------");
        System.out.println("Final do Jogo, Inicie Novamente: ");
        System.out.println("---------------------------------");
        }
        }
        
    }
}

Se alguem puder me ajudar serei muito grato!

import java.util.Scanner;

public class JogoDoisOuUm{
    public static void main(String[] args) {
        
        System.out.println("Neste Jogo o vencedor é aquele que escolhe o numero diferente entre três participantes");
        
        int N = 0; // N representa o total de partidas que serão jogadas.
        
        int A,B,C; // Essas variaveis representam os 3 jogadores.
     
        Scanner entrada = new Scanner(System.in);
        
        System.out.println("Escolha quantas partidas serão jogadas: ");
        Scanner n = new Scanner(System.in);
        N = n.nextInt();
          
        while(N > 0){
            System.out.println("O Jogador A escolha 2 ou 1: ");
            A = entrada.nextInt();
            if(A <1 || A >2){
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido, Jogador A Digite 2 ou 1");
                System.out.println("----------------------------------------");
                A = entrada.nextInt();
            }
            System.out.println("O Jogador B escolha 2 ou 1: ");
            B = entrada.nextInt();
            if(B < 1 || B > 2){
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido, jogador B Digite 2 ou 1");
                System.out.println("----------------------------------------");
                B = entrada.nextInt();
            }
            
            System.out.println("O Jogador C escolha 2 ou 1: ");
            C = entrada.nextInt();
            if(C < 1 || C > 2){
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido, jogador C Digite 2 ou 1");
                System.out.println("----------------------------------------");
                C = entrada.nextInt();
            }
          
            if(A != B && A != C){
                System.out.println("------------------------------------------------------");
                System.out.println("O Jogador A Foi o vencedor, Vamos para Proxima Rodada ");
                System.out.println("------------------------------------------------------");
            }else if(B != C && B != A) {
                System.out.println("------------------------------------------------------");
                System.out.println("O Jogador B foi o vencedor, Vamos para Proxima Rodada ");
                System.out.println("------------------------------------------------------");
            }else if(C != A && C != B){
                System.out.println("------------------------------------------------------");
                System.out.println("O Jogador C foi o vencedor, Vamos para Proxima Rodada ");
                System.out.println("------------------------------------------------------");
            }else{
                System.out.println("---------------------------------------------");
                System.out.println("O Jogo está empatado vamos a proxima Rodada: ");
                System.out.println("---------------------------------------------");
            }
            
            N--;
            if(N <= 0){
            System.out.println("---------------------------------");
            System.out.println("Final do Jogo, Inicie Novamente: ");
            System.out.println("---------------------------------");
            }
        }
        
    }
}

com essa alteração consigo travar ele porém somente uma vez, se o jogador digitar 3 duas vezes seguida vai pular para o proximo jogador e preciso que ele trave enquanto não digitar 2 ou 1.

valeu

O problema é que n tinha um while para validar, ta ae o código:

import java.util.Scanner;

/**
 *
 * @author 4Mega
 */
    public class Jogo {

public static void main(String[] args) {

    System.out.println("Neste Jogo o vencedor é aquele que escolhe o numero diferente entre três participantes");

    int N = 0; // N representa o total de partidas que serão jogadas.

    // Essas variaveis representam os 3 jogadores, foram inicializadas com zero
    int A = 0;
    int B = 0;
    int C = 0;

    Scanner entrada = new Scanner(System.in);

    System.out.println("Escolha quantas partidas serão jogadas: ");
    Scanner n = new Scanner(System.in);
    N = n.nextInt();

    while (N > 0) {
        // JOGADOR A
        boolean valido = false;
        while (valido == false) { //  enquanto n estiver validado execute:
            System.out.println("O Jogador A escolha 2 ou 1: ");
            A = entrada.nextInt();
            if (A < 1 || A > 2) {
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido!");
                System.out.println("----------------------------------------");
            } else {
                valido = true;
            }
        }
        // JOGADOR B
        valido = false; // reinicia variavel
        while (valido == false) { //  enquanto n estiver validado execute:
            System.out.println("O Jogador B escolha 2 ou 1: ");
            B = entrada.nextInt();
            if (B < 1 || B > 2) {
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido!");
                System.out.println("----------------------------------------");
            } else {
                valido = true;
            }
        }

        // JOGADOR C
        valido = false; //reinicia variavel
        while (valido == false) { //  enquanto n estiver validado execute:
            System.out.println("O Jogador C escolha 2 ou 1: ");
            C = entrada.nextInt();
            if (C < 1 || C > 2) {
                System.out.println("----------------------------------------");
                System.out.println("Numero Invalido!");
                System.out.println("----------------------------------------");
            } else {
                valido = true;
            }
        }
        if (A != B && A != C) {
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador A Foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        } else if (B != C && B != A) {
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador B foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        } else if (C != A && C != B) {
            System.out.println("------------------------------------------------------");
            System.out.println("O Jogador C foi o vencedor, Vamos para Proxima Rodada ");
            System.out.println("------------------------------------------------------");
        } else {
            System.out.println("---------------------------------------------");
            System.out.println("O Jogo está empatado vamos a proxima Rodada: ");
            System.out.println("---------------------------------------------");
        }

        N--;
        if (N <= 0) {
            System.out.println("---------------------------------");
            System.out.println("Final do Jogo, Inicie Novamente: ");
            System.out.println("---------------------------------");
        }  
    }

}
}

Obrigado! realmente era este o laço que estava faltando, mas eu não conseguia executar.

meu salvou! muito obrigado! espero em breve poder te ajudar de alguma forma!

abraço!

1 curtida