I've never felt like a total moron until I took a Computer Science class. I'm trying to create a program that rolls a pair of standard 6 sided dice 10,000 times and outputs how many times doubles show up, using a "while" loop.

I think what I'm trying to do is pretty clear, although I'm positive that I am going about it all wrong.

import java.util.Random;		//to use the random number generator 

/**
   This class simulates rolling a pair of dice 10,000 times and
   counts the number of times doubles of are rolled for each different
   pair of doubles.
*/

public class DiceSimulation
{
	public static void main(String[] args)
	{
		final int NUMBER = 10000;	//the number of times to roll the dice

		//a random number generator used in simulating rolling a dice
		Random generator = new Random();
		
		int die1Value;      	// number of spots on the first die
		int die2Value;      	// number of spots on the second die
		int count = 0;	     	// number of times the dice were rolled
		int snakeEyes = 0;  	// number of times snake eyes is rolled
		int twos = 0;		// number of times double two is rolled
		int threes = 0;		// number of times double three is rolled
		int fours = 0;		// number of times double four is rolled
		int fives = 0;		// number of times double five is rolled
		int sixes = 0;		// number of times double six is rolled

		//Get value of first die (I'm getting a "cannot find symbol" error here)
		die1Value = randomNumbers.nextInt(6);

		//Get value of second die (ditto here)
		die2Value = randomNumbers.nextInt(6);


		//"While" loop to to calculate number of times doubles rolled (getting incomparable types errors here)
		while (count <= 10000)
		{
		if (die1Value = die2Value == 1)
		{snakeEyes++;}
		else if (die1Value = die2Value == 2)
		{twos++;}
		else if (die1Value = die2Value == 3)
		{threes++;}
		else if (die1Value = die2Value == 4)
		{fours++;}
		else if (die1Value = die2Value == 5)
		{fives++;}
		else if (die1Value = die2Value == 6)
		{sixes++;}
		count++;
		}

		

		System.out.println ("You rolled snake eyes " + snakeEyes +
			" out of " + count + " rolls.");
		System.out.println ("You rolled double twos " + twos +
			" out of " + count + " rolls.");
		System.out.println ("You rolled double threes " + threes +
			" out of " + count + " rolls.");
		System.out.println ("You rolled double fours " + fours +
			" out of " + count + " rolls.");
		System.out.println ("You rolled double fives " + fives +
			" out of " + count + " rolls.");
		System.out.println ("You rolled double sixes " + sixes +
			" out of " + count + " rolls.");
	}
}

Recommended Answers

All 5 Replies

die1Value = die2Value == 1
You can't string together == tests like that, the = just copes the value on its RHS to the variable on its left.
You need something like
die1Value == 1 && die2Value == 1

public class MatchingPair
{
	public static void main(String [] args)
	{
		
		int dice = (int)(Math.random() * 6) + 1;
                int dice2 = (int)(Math.random() * 6) +1;
		int count = 1;

	
		while (dice != dice2)
		{
			System.out.println("Throw: " + dice +" and "+dice2);
			count = count + 1;
			dice = (int)(Math.random() * 6) + 1;
                        dice2 = (int) (Math.random() * 6) + 1;
		}
		System.out.println("It took " + count + " goes to throw " + dice +" and " + dice2);
	}
}

... and the question is?

... and the question is?

Sorry no I was trying to help with the actual post. Still fairly new to forum. No actual question.

OK, no problem.
As a newcomer you should understand that we try not to just give people answers to their homework - they don't learn much from copy/paste, and it's cheating. You help them more by explaining where and what their mistakes are, and giving some guidance as to what they should be doing next - but not by doing it for them.
Anyway, welcome to DaniWeb.

ps: Always post your code correctly indented and in CODE tags

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.