Simple Slot Machine Java

Posted on  by 

Java Applet simple Slot Machine. GitHub Gist: instantly share code, notes, and snippets. Design and implement an application that simulates a simple slot machine in which three numbers between 0 and 9 are randomly selected and printed side by side. Print an apprpriate statement if all three numbers are the same, or if any two of the numbers are the same. Continue playing until the user chooses to stop.

  1. Java Slot Machine
  2. Slot Machine Source Code
  3. Slot Machine Simulation Java Program

A couple of years ago, when I was learning Java programming, I thought of testing myself and my programming skills by writing a game in Java. Now, I'm not going to call it 'game programming', since game programming is way more than what I did. In fact, what I did was just a test for me. So I decided to write a game I was playing on my old Nokia E50 phone, a Slot Game.

This slot game I was playing on my phone was really simple. It had only 3 slots with different items in each. You had to push the Spin button in order to spin the slots, and you would win a small amount of coins if two or three slots were alike. Of course, 3 slots were better than 2. It is not really hard to make a game like this, but for a beginner it is good to start with. As I remember, this was probably the first program that I could tell others: “Look at what I just did!”

So I started working on it (I remember using NetBeans at that time), firstly as console-only, and then using GUI. The first thing I did, was deciding what kind of images (actually their names, not the images themselves) I would use. I wrote this line of code:

I also decided what would be the amount of “money” that the user would win if he matched two or three symbols:

After that, I went on writing the code that was suposed to randomly choose one of the elements in the symbols array. This could be done by using the Math.random() method, or by calling the nextInt() method at a Random instance, or by the wrong way I used to do at the beginning:

Simple slot machine java tutorial

Of course, I soon switched to calling Math.random(), and in order to get a number that I could use as an index for my array, I wrote this block of code:

So the variable choice was the random index that I could use to get a random item from the array (keep in mind that Math.random() returns a double between 0.0 and 1.0)

So after choosing 3 random items, I just printed them out at the console, saying whether there were none, two or three matches, and calculating the amount of money won, if there was any, with the given coefficient. It was a good start; I only had to think of the UI, and I suck at UI design. But for this one, all that I needed was a really simple design which I managed to code as I was planning.

For the items to show at slots, I just googled them and found 12 of them in a single sprite. I downloaded the sprite and started my old photo editing software which sometimes can really be magical; Microsoft Paint! I started cropping images from the sprite, paying attention to their dimensions that should be the same, 122px by 114px. Why these magical values? Just because!

What was left to do, was the UI. I could use the really-helpful drag-and-drop UI builder that ships with NetBeans, but I wanted to do it myself. I had a really hard time figuring out which kind of layout to use, since the only one I really knew was GridLayout. Anyway beside that, I managed to use FlowLayout and BorderLayout. There is a difference between them, but I’m not really capable of pointing that out, so you can check the online JavaDoc for them.

Java Slot Machine

I managed to build the game, and started to play it. I figured out that the coefficients for multiplying the bet were too damn high, but I didn’t care as long as I knew that the game worked.

My bad practices

As you can see, the source code of this simple game is in only one file. This is something that I don’t like to do anymore. A better way to do it is by making the code as modular as it can be. By building small modular elements, dividing the UI from the logic of the application, you help yourself during the testing and debugging phase. So the first thing that I would like to change, is dividing the whole class Slots extends JFrame from the class that calls it.

This is done by firstly creating a file called Slots.java that will contain only the code for the UI. Then, creating an ActionListener that will listen to different button clicks (there are 5 different buttons). Finally, creating a class called App.java that will only create a Slots instance and make it run.

Basically, the App.java would look like this:

As I remember, SwingUtilities.invokeLater() is used to divide the UI thread from other threads, so if any UI changes are needed, they won’t stall the application.

The Listener class, which might be called something like SlotButtonListener, might be something like this:

And finally, in the Slots class there would be only the code for defining the UI of the game. All the buttons would have SlotButtonListener as action listener.

Anyone who wants to change the code following these advices is free to do it. You can fork it anytime you want.

Do you have any Java programming advice for me? Feel free to comment below


Greenhorn
posted 9 months ago
Hello. In my computer science class, we have an assignment to make a Slot Machine with objects but I'm having some trouble. I already got a lot of it done but I'm not really sure where to go from here. Can someone please help? Below are links to the two .java files on PasteBin and a link to a PDF of the project rubric in google drive. Thanks for the help in advance!
https://pastebin.com/sDwMFQiG slotmachine.java
https://pastebin.com/EWFJKg87 SlotRunner.java
https://drive.google.com/file/d/1XEXjHYIc51C9KSvcLasrlTm5r3j3a1GX/view?usp=sharing Slot Machine Rubric
Bartender
posted 9 months ago
Please cut and paste the code into a post, and UseCodeTags (<-link).
What's the program supposed to do when you run it?

Slot Machine Source Code

Sheriff
posted 9 months ago
Welcome to the Ranch!
You said you got a lot of it done, please show us exactly what you got done.

The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck
How to Ask Questions | How to Answer Questions | Format Your Code

Slot Machine Simulation Java Program

Greenhorn
posted 9 months ago
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.'spin x: cherry cherry cherry, you won' and then stop running. For this, there are 2 files, SlotRunner, which will utilize the SlotMachine class and spit out the values of the 3 reels/tell me whether or not I won, and the SlotMachine class is what contains most of the code that actually does stuff. What I've done so far is setup the 2 classes like my CompSci teacher asked and tried adding some stuff of my own. Although most of what I've done hasn't worked. I would have just asked my CompSci teacher but he sent out an email a few hours ago saying he's out sick but to still work on the Slot Machine stuff. I already said the basic needs for the Slot Machine but Here's the actual rubric. https://drive.google.com/open?id=1XEXjHYIc51C9KSvcLasrlTm5r3j3a1GX I don't really need help with part b of the rubric because i don't really plan on doing it. I just need to get at least a 70 on the assignment.
The Slot Machine runner class:

The actual Slot Machine Class
Bartender
posted 9 months ago
So, it seems like you need to be able to display one spin as a starting point. What are you missing in order to do that?
Simple
Sheriff
posted 9 months ago
That looks like the starter code you were given. None of the parts that the student is supposed to do have been done. You should know that this site exists to help people learn. That means we don't allow anyone here to provide solutions for you to pass for your own work. We'll only help you work through any problems you encounter as you try to solve the problem yourself, with code that you wrote yourself.
So, what are having trouble with?

The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck
How to Ask Questions | How to Answer Questions | Format Your Code

Bartender
posted 9 months ago
In general development work flow, you pick a small starting point, implement it, get it to compile, get it to run, and test it till it works, BEFORE going on to adding the next piece. I notice many places that won't compile in your code so it seems you haven't followed this process. You may need to start over and select only one of the basic methods and go through the steps till it's completely debugged.

Coments are closed