Member 13455134 Ответов: 1

Что я сделал не так? Игра в кости


Я должен разработать игру в кости, поэтому у меня она работала, когда вы не получаете 2,3,7, 11 или 12, она будет продолжать катиться, пока вы не достигнете своей точки или не получите 7. 7 означает, что вы проиграли, если вы снова попадете в свою точку, вы выиграете. Но он продолжает работать и говорить, что я выкатил 2. что я сделал не так? Очень смущен. то, что у меня есть, находится ниже

Что я уже пробовал:

public class Program04 {
	

	public static void main(String[] args) {
		
		// C R A P S
		
		int roll1, roll2, firstTotal, sum;
		int point = 0;
		int newRoll1, newRoll2, newTotal;
		
		//Inputs
		System.out.println("Welcome to CRAPS! LETS PLAY!");
		
		//Compute and display
		roll1 = (int)(Math.random() * 6 + 1);
		roll2 = (int)(Math.random() * 6 + 1);
		firstTotal = roll1 + roll2;
		System.out.println("You rolled a " + roll1 + " and a " + roll2);
		System.out.println("You have a " + firstTotal);
		
		if (firstTotal == 7 || firstTotal == 11) {
			System.out.println("CONGRATS! YOU WON!");
		}
		else if (firstTotal == 2 || firstTotal == 3 || firstTotal == 12) {
			System.out.println("Too bad. You lost :(");
		}
		else {
			firstTotal = point;
			do {
			sum = rollDice();
			System.out.println("You rolled a " + sum + "!");
			
			} while (point != sum || point != 7);
			
			if (sum == 7) {
				System.out.println("You Lost!");
			}
			else if (sum == point) {
				System.out.println("You won! You got your sum to equal point!");
			}
				
		}

		
		
	}
	
	public static int rollDice() {
		int newVal1 = (int) Math.random() * 6 + 1;
		int newVal2 = (int) Math.random() * 6 + 1;
		int sum = newVal1 + newVal2;
		return sum;
		
	}

}

1 Ответов

Рейтинг:
1

Patrice T

do {
	sum = rollDice();
	System.out.println("You rolled a " + sum + "!");

} while (point != sum || point != 7);

Вы не выходите из этого цикла, потому что вы никогда не храните в нем никакой ценности. point кроме начального нуля.

Совет: узнайте, как использовать отладчик.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.