Slot Machine Game Java Source Code

For Real Online Gambling. A slot game is one of the most popular gambling games that has attracted gambling lovers from quite some time, and HTML5 Slot Machine Source Code is a standard solution for the firms that are looking forward to developing an online slot machine kind of gaming software. 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. Development of Java Sname game. The size of each of the joints of a snake is 10 px. The snake is controlled with the cursor keys. Initially, the snake has three joints. If the game is finished, the 'Game Over' message is displayed in the middle of the board.

last modified July 20, 2020

Java To Machine Code

In this part of the Java 2D games tutorial, we create a Java Snake game clone. Source code and images can be found at the author's Github Java-Snake-Game repository.

Snake

Snake is an older classic video game. It was first created in late 70s. Later it was brought to PCs. In this game the playercontrols a snake. The objective is to eat as many apples as possible. Each time the snake eats an apple its body grows. The snake must avoid the walls and its own body. This game is sometimes called Nibbles.

Development of Java Sname game

The size of each of the joints of a snake is 10 px. The snake is controlled with the cursor keys. Initially, the snake has three joints. If the game is finished, the 'Game Over' message is displayed in the middle of the board.

Board.java

First we will define the constants used in our game.

The B_WIDTH and B_HEIGHT constants determine the size of the board. The DOT_SIZE is the size of the apple and the dot of the snake. The ALL_DOTS constant defines the maximum number of possible dots on the board (900 = (300*300)/(10*10)). The RAND_POS constant is used to calculate a random position for an apple. The DELAY constant determines the speed of the game.

These two arrays store the x and y coordinates of all joints of a snake.

In the loadImages() method we get the images for the game.The ImageIcon class is used for displaying PNG images.

In the initGame() method we create the snake, randomly locatean apple on the board, and start the timer.

If the apple collides with the head, we increase the number of joints of the snake.We call the locateApple() method which randomly positions a new apple object.

In the move() method we have the key algorithm of the game. To understand it, look at how the snake is moving. We control the head of the snake. We can change its direction with the cursor keys. The rest of the joints move one position up the chain. The second joint moves where the first was, the third joint where the second was etc.

This code moves the joints up the chain.

This line moves the head to the left.

In the checkCollision() method, we determine if the snake has hit itself or one of the walls.

If the snake hits one of its joints with its head the game is over.

The game is finished if the snake hits the bottom of the board.

This is the main class.

Slot Machine Game Java Source Codes

The setResizable() method affects the insets of the JFramecontainer on some platforms. Therefore, it is important to call it before the pack() method. Otherwise, the collision of the snake's head with the right and bottom borders might not work correctly.

This was the Snake game in Java.

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:

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.

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:

Source

Java Slot Machine Program

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

Slot Machine C# Code