Я только начал изучать Java, поэтому я, возможно, даже не на правильном пути, но у меня есть задание, которое просит меня создать игру 21. Способ работы игры заключается в том, что игрок и компьютер по очереди вводят либо 1, 2 или 3. Игрок, который вводит число, которое соответствует или превышает 21, проигрывает.Мне кажется, что проблема в том, что я не могу заставить программу выйти из цикла при вводе последнего номера, и он будет отображать, что игрок проигрывает каждый раз, выигрывает или проигрывает.
Я пыталсяиспользование другого оператора if после цикла do-while для отображения «You Win!»или "Вы потеряли".Однако я не могу понять, какие параметры мне следует использовать в операторе if, чтобы решить, кто победил.Я также пытался настроить игру, указав в качестве четных чисел игрока, а в качестве нечетных чисел - компьютера, но я не смог добавить числа к промежуточной сумме, чтобы завершить цикл.
int numLoops = 0;
int firstCheck;
int points;
Scanner input = new Scanner(System.in);
do
{
System.out.print("\nEnter a 1, 2, or 3 >> ");
points = input.nextInt();
int random = (int )(Math.random() * 3 + 1);
numLoops = points + numLoops + random;
if(numLoops < 21)
{
System.out.println("The computer entered a " + random);
System.out.println("The new total is " + numLoops);
}
else
{
//This is what always prints.
System.out.println("You lost! The computer is the victor.");
}
}while(numLoops < 21);
//this is what I am having most of my trouble with.
System.out.println("You Win!");
Я ожидаючто цикл закроется после того, как общее число достигнет 21, и выведет оператор, который зависит от того, кто выиграл.Тем не менее, программа всегда выводит, что проигрыватель проиграл.