Okay. So think about this logically:

Your outer loop needs to repeat 10000 times. Right now you have...

for (NUM_GAMES = 10000)

...but this won't work. All you're doing is telling the for loop to set the value of NUM_GAMES to 10000; you're not actually testing anything. The syntax for a for-loop is

for(VariableDeclaration; TestExpression; Increment)

Right now, you have the declaration (NUM_GAMES = 10000), but think about this: do you start at the 10000th game, or the 1st game? Then, for the test: you want the loop to continue as long as NUM_GAMES is less than or equal to 10000. Finally, the increment (easy): every time a game is completed, you add one to the current value of NUM_GAMES.

Next, for your random:

int roll = diceRoller.nextInt(11) + 2;

This is confusing, but think about it: if you roll two dice, what is the chance of getting, say, a 6 compared to the chances of getting a 12? The 6 is more likely because there are more ways to roll a 6 (2 + 4, 3 + 3, etc.), whereas there's only one way to roll a 12 (6 + 6). However, using only one random from 0 to 12 doesn't accurately represent this situation. Instead of how you have it now, I'd do as the instructions suggested:

Originally Posted by

**The Instructions**
To generate a random number x, where 0 <= x < 1, use x = Math.random(); . For example, multiplying by six and converting to an integer results in an integer that is from 0 to 5.

Use two randoms that range from 1 to 6, then add them to get your total (so instead of just declaring one int -- roll -- I'd do rollA, rollB, and sum).

Now, note that you will need two more integers; one to hold the number of wins and another to hold the number of losses.

Hm... I think I'll stop there for now. Try implementing those suggestions, and I'll provide more when you figure that much out. Good luck!