Loop Through 3 Slot Machines Java Program

Below is the syntax highlighted version of RollDie.java from §1.3 Conditionals and Loops.

Machines

What the code is supposed to do is create a 3 reel, 6 icon slot machine in two classes that utilize objects that, when ran, will say something like 'spin x: orange grape cherry, you lost' It will keep running until you win. To win, you have to have all 3 reels be the same ex.' Assignment #3 - Slot Machine Prepare to work on this assignment by creating a work folder called assign3 in your w-number folder. Call your program SlotMachine.java. Version 3.1 Consider a slot machine with 3 spinners. Each spinner can have 3 different pictures: cherries, bell, or a gold bar.

Greenhorn
posted 10 years ago
One of my assignments requires that I make a program that will calculate dice probability using nested loops(no idea why nested loops would be used here). I've written it out, and I get no compiling errors, but when I actually run the program for some reason it won't stop asking for user input, any advice as to why it does this would be helpful. I think the problems inside the for loop because without it there is no repetitive issue. I think the for loop isn't taking the value of rolls and is actually asking for it, but I need that value in there.
Saloon Keeper
posted 10 years ago
First of all, start by making your program more clear by eliminating all the 'cases' you use. You can store your values in a simple array like this:
rolls[random -1]++;
This will *greatly* decrease the verbosity of your program, and make it more clear why it's doing what it does.
Greenhorn
posted 10 years ago

Stephan van Hulst wrote:First of all, start by making your program more clear by eliminating all the 'cases' you use. You can store your values in a simple array like this:
rolls[random -1]++;
This will *greatly* decrease the verbosity of your program, and make it more clear why it's doing what it does.


Program I can't use rolls to store my values, rolls needs to be a number put in by the user because it determines how many times a dice would be rolled. The only real use I have for it is to determine when the main for loop ends. Then I need compare each new random to 1-12, to determine how many times that number has been rolled. I sort of understand what you're getting at with rolls[random -1]++ but I'm not quite sure how to assign the array as you're trying to point out.

Loop Through 3 Slot Machines Java Programmers

Anyways this is what I've worked out according to what I think you mean. Still get the same issue though. I think it's asking for a new rolls every time the for loop runs through, any idea how to fix that?
Saloon Keeper
posted 10 years ago
I apologize, I didn't notice you already had a variable with that name. I meant a new variable, which you have interpreted correctly.
Anyway, looking at your program, I don't see why it would keep asking for input. You should have an entirely different problem on your hand, namely that you're stuck in a permanent loop. Have a look at the exit condition of your nested for loop.
By the way, you can also eliminate a lot in your display code.
If I may give you a big hint, I think you are using the nested loop for the wrong purpose. Tell me, how many dice do you have?
Greenhorn
posted 10 years ago

Stephan van Hulst wrote:I apologize, I didn't notice you already had a variable with that name. I meant a new variable, which you have interpreted correctly.
Anyway, looking at your program, I don't see why it would keep asking for input. You should have an entirely different problem on your hand, namely that you're stuck in a permanent loop. Have a look at the exit condition of your nested for loop.
By the way, you can also eliminate a lot in your display code.
If I may give you a big hint, I think you are using the nested loop for the wrong purpose. Tell me, how many dice do you have?


That's the format the displays supposed to go in, according to the example given by my teacher. These are the assignment instructions, and I have to use nested loops because of the section I'm on, it's an Ap class that i take online. So it's mostly self learned.
1. Create a new project called 5.05 Random Dice in the Mod05
Assignments folder.
2. Create a class called DiceProbability in the newly created project
folder.
3. Ask the user to input how many times the dice will be rolled.
4. Calculate the probability of each combination of dice. (You may want to start with
more familiar six-sided dice.)
5. Print the results neatly in two columns (do not worry about excessive decimal places).
6. What is the effect on the percentages when the number of rolls is increased?
7. After the program works, you might want to make it more interesting and ask the user
to enter the number of sides on a die (singular for dice).
Saloon Keeper
posted 10 years ago
It doesn't say in the requirements you need a nested loop.
You can make your display code display the same stuff, except with less verbose code, in the same way you altered the rest of your program. 'Two or more, use a for'.
Greenhorn
posted 10 years ago

Stephan van Hulst wrote:It doesn't say in the requirements you need a nested loop.


It isn't very specific but it does say it in the grading rubric, and the assignment is going to be turned in as Assignment 5.05 nested loops. So I'm pretty sure it had to use nested loops, believe me if it was my choice I wouldn't use nested loops for this.
Sheriff
posted 10 years ago
Your biggest problem here is that you have an infinite loop. The inner loop's end condition will never be met.
Sheriff
posted 10 years ago
Personally, I would not assume anything about nested loops. But if you insist on using them, I can think of a place where nested loops may be used :
1. Ask the number of rolls
2. Make a new array which is the size of the number of rolls. Each element will contain the roll result
3. Roll the dice and store the result in the array
4. Loop through each dice face (by the way, the numbers of faces should be kept in a variable)
5. Loop through the array, and count the number of times the current face was rolled
6. Calculate the probability the current faced has been rolled
Ranch Hand

Loop Through 3 Slot Machines Java Programming

posted 10 years ago

Slot Machine Simulation Java Program

Another problem you need to be aware of is that you're not calculating for two six-sided dice, but rather for a twelve-sided one. To calculate for two dice you shoud use nested loops, but for only one die (as you're doing here), one is enough.
It should do this:

This will calculate probabilities. Your program right now just rolls a d12 and this will, with enough rolls, come close to the probability, but will not show it.

Life is full of choices. Sometimes you make the good ones, and sometimes you have to kill all the witnesses.