Как заставить кости перебрасываться до тех пор, пока они не достигнут точки (кости), используя цикл while? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь построить игру в крэпс, в которой, если компьютер автоматически получит пару костей и если процессор бросит 7 или 11, выиграет пользователь.Однако, если пользователь бросает 2, 3 или 12, они автоматически проигрывают.И если пользователь выбрасывает любое другое число (4, 5, 6, 8, 9, 10), то это «точка», и он должен попытаться снова выпустить эту точку.(если они не выбрасывают 7, то они проигрывают.) Я пытаюсь заставить свой цикл while продолжать катиться, если компьютер выбрасывает число, отличное от 7 или «точку», но цикл while продолжает выходить и будет катиться только максимумдва раза, и он продолжит цикл второго значения броска.

это то, что у меня сейчас ..

    int d1 = (int) (6 * Math.random() + 1);
    int d2 = (int) (6 * Math.random() + 1);
    int roll = (d1 + d2);
   int point = roll;

System.out.println("The sum for the two dice rolls is " + roll);



while(roll != 7 || roll != point )
{
    System.out.print("reroll");
    int d3 = (int) (6 * Math.random() + 1);
    int d4 = (int) (6 * Math.random() + 1);


}

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

В строке 4 вы присваиваете значение roll к точке:

int point = roll;

Нет смысла проверять, находится ли «roll! = Point» в заголовке while, потому что эти значения никогда не обновляются внутрив то время как петля.Они всегда равны!Цикл while будет продолжаться вечно, как только броску будет присвоено значение, не равное 7, перед циклом while.

0 голосов
/ 23 сентября 2019

while (roll! = 7 || roll! = Point)

Для меня не имеет смысла, что это "||".Разве это не должно быть "&&"?

Как сейчас, цикл завершится только тогда, когда точка == 7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...