Table of contents
1.
Introduction
2.
Example
3.
Code 
3.1.
Code to develop a “Puzzle Game in Java” using Java Awt 
3.2.
Code to develop a “Puzzle Game in Java” using Java Swing
4.
Frequently Asked Questions
4.1.
What is Java AWT?
4.2.
What is JComponent used for?
4.3.
What is the getUI() used for?
4.4.
What is JFrame?
4.5.
What is JButton? 
5.
Conclusion
Last Updated: Mar 27, 2024
Easy

Puzzle Game in Java

Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

Puzzle Game in Java is a popular problem among developers for the practice of Java which can be developed through java swing or java awt. Java Swing and AWT are graphics designing components of Java.

Puzzle Game in Java

The functionality of this game is there will be a window in which some numbers will be given, numbers in some rows will be arranged in some specific pattern, and numbers in any row will be assigned randomly. So the user has to recognize the pattern according to the numbers arranged in the arranged rows and has to arrange the numbers of the unarranged row in the same pattern as above. If the number arranged by the user is correct according to the pattern of the game, a  popup will be generated showing the message “You won!!!”.

Example

Let’s understand this problem more clearly using an example described below:

Puzzle Game in Java

Suppose we have given a number table in which one cell is empty. Now our task is to recognize the pattern in which numbers are stored in the properly arranged row of the table. In this given table, we see that when we move from left to right in the first and second row from the top, there is an increment of two. Now, as we recognize the pattern, then we will arrange the numbers of the last row in the same pattern. So when we add 14+2, it will be 16, so the next number after 14 will be 16, so we will put 16 in the next cell of 14.

Now the systematically arranged table will be:

Puzzle Game in Java

Code 

Now we will implement the same logic as explained above to develop a Puzzle Game in Java with the help of Java Swing and Java awt.

Code to develop a “Puzzle Game in Java” using Java Awt 

import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class PuzzleGame extends Frame implements ActionListener{  
	Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;  
	PuzzleGame(){  
		super("Puzzle Game in Java - Codingninjas");  
		btn1 = new Button("2");  
    	btn1.setBounds(80,150,50,50);  
    	btn2 = new Button("4");  
    	btn2.setBounds(150,150,50,50);  
    	btn3 = new Button("6");  
    	btn3.setBounds(220,150,50,50);  
    	btn4 = new Button("8");  
    	btn4.setBounds(80,220,50,50);  
    	btn5 = new Button("10");  
    	btn5.setBounds(150,220,50,50);  
    	btn6 = new Button("12");  
    	btn6.setBounds(220,220,50,50);  
    	btn7 = new Button("14");  
    	btn7.setBounds(80,290,50,50);  
    	btn8 = new Button("");  
    	btn8.setBounds(150,290,50,50);  
    	btn9 = new Button("16");  
    	btn9.setBounds(220,290,50,50);  
      	
    	btn1.addActionListener(this);  
    	btn2.addActionListener(this);  
    	btn3.addActionListener(this);  
    	btn4.addActionListener(this);  
    	btn5.addActionListener(this);  
    	btn6.addActionListener(this);  
    	btn7.addActionListener(this);  
    	btn8.addActionListener(this);  
    	btn9.addActionListener(this);  
      	
	add(btn1);add(btn2);add(btn3);add(btn4);add(btn5);add(btn6);add(btn7);add(btn8);add(btn9);  
		setSize(500,500);  
    	setLayout(null);  
    	setVisible(true);  
	}  
	public void actionPerformed(ActionEvent e){  
    	if(e.getSource()==btn1){  
        	String label=btn1.getLabel();  
        	if(btn2.getLabel().equals("")){  
            	btn2.setLabel(label);  
            	btn1.setLabel("");  
        	}  
        	if(btn4.getLabel().equals("")){  
            	btn4.setLabel(label);  
            	btn1.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn2){  
        	String label=btn2.getLabel();  
        	if(btn1.getLabel().equals("")){  
            	btn1.setLabel(label);  
            	btn2.setLabel("");  
        	}  
        	if(btn3.getLabel().equals("")){  
            	btn3.setLabel(label);  
            	btn2.setLabel("");  
        	}  
        	if(btn5.getLabel().equals("")){  
            	btn5.setLabel(label);  
            	btn2.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn3){  
        	String label=btn3.getLabel();  
        	if(btn2.getLabel().equals("")){  
            	btn2.setLabel(label);  
            	btn3.setLabel("");  
        	}  
        	if(btn6.getLabel().equals("")){  
            	btn6.setLabel(label);  
            	btn3.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn4){  
        	String label=btn4.getLabel();  
        	if(btn1.getLabel().equals("")){  
            	btn1.setLabel(label);  
            	btn4.setLabel("");  
        	}  
        	if(btn7.getLabel().equals("")){  
            	btn7.setLabel(label);  
            	btn4.setLabel("");  
        	}  
        	if(btn5.getLabel().equals("")){  
            	btn5.setLabel(label);  
            	btn4.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn5){  
        	String label=btn5.getLabel();  
        	if(btn2.getLabel().equals("")){  
            	btn2.setLabel(label);  
            	btn5.setLabel("");  
        	}  
        	if(btn6.getLabel().equals("")){  
            	btn6.setLabel(label);  
            	btn5.setLabel("");  
        	}  
        	if(btn4.getLabel().equals("")){  
            	btn4.setLabel(label);  
            	btn5.setLabel("");  
        	}  
        	if(btn8.getLabel().equals("")){  
            	btn8.setLabel(label);  
            	btn5.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn6){  
        	String label=btn6.getLabel();  
        	if(btn9.getLabel().equals("")){  
            	btn9.setLabel(label);  
            	btn6.setLabel("");  
        	}  
        	if(btn3.getLabel().equals("")){  
            	btn3.setLabel(label);  
            	btn6.setLabel("");  
        	}  
        	if(btn5.getLabel().equals("")){  
            	btn5.setLabel(label);  
            	btn6.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn7){  
        	String label=btn7.getLabel();  
        	if(btn4.getLabel().equals("")){  
            	btn4.setLabel(label);  
            	btn7.setLabel("");  
        	}  
        	if(btn8.getLabel().equals("")){  
            	btn8.setLabel(label);  
            	btn7.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn8){  
        	String label=btn8.getLabel();  
        	if(btn9.getLabel().equals("")){  
            	btn9.setLabel(label);  
            	btn8.setLabel("");  
        	}  
        	if(btn7.getLabel().equals("")){  
            	btn7.setLabel(label);  
            	btn8.setLabel("");  
        	}  
        	if(btn5.getLabel().equals("")){  
            	btn5.setLabel(label);  
            	btn8.setLabel("");  
        	}  
    	}  
    	if(e.getSource()==btn9){  
        	String label=btn9.getLabel();  
        	if(btn6.getLabel().equals("")){  
            	btn6.setLabel(label);  
            	btn9.setLabel("");  
        	}  
        	if(btn8.getLabel().equals("")){  
            	btn8.setLabel(label);  
            	btn9.setLabel("");  
        	}  
    	}  
      	
    	//congrats code  
    	if(btn1.getLabel().equals("2")&&btn2.getLabel().equals("4")&&btn3.getLabel()    
            	.equals("6")&&btn4.getLabel().equals("8")&&btn5.getLabel().equals("10")    
            	&&btn6.getLabel().equals("12")&&btn7.getLabel().equals("14")&&btn8.getLabel()    
            	.equals("16")&&btn9.getLabel().equals("")){     
            	JOptionPane.showMessageDialog(this," You won!!!");    
    	}    
	}  
	public static void main(String[] args) {  
    	new PuzzleGame();  
	}  
}  
You can also try this code with Online Java Compiler
Run Code

 

OUTPUT

Puzzle game in java gif

Code to develop a “Puzzle Game in Java” using Java Swing

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class PuzzleGame extends JFrame implements ActionListener{
	JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,submit;  
	PuzzleGame(){  
		super("Puzzle Game in Java - CodingNinjas");  
 		btn1 = new JButton("2");  
 		btn2 = new JButton(" ");  
 		btn3 = new JButton("6");  
 		btn4 = new JButton("8");  
 		btn5 = new JButton("10");  
 		btn6 = new JButton("12");  
 		btn7 = new JButton("14");  
 		btn8 = new JButton("16");  
 		btn9 = new JButton("4");  
 		submit = new JButton("submit");  
  	
		btn1.setBounds(40,30,60,50);  
		btn2.setBounds(120,30,60,50);  
		btn3.setBounds(200,30,60,50);  
		btn4.setBounds(40,100,60,50);  
		btn5.setBounds(120,100,60,50);  
		btn6.setBounds(200,100,60,50);  
		btn7.setBounds(40,170,60,50);  
		btn8.setBounds(120,170,60,50);  
		btn9.setBounds(200,170,60,50);  
		submit.setBounds(90,250,100,40);  
    	
	add(btn1);add(btn2);add(btn3);add(btn4);add(btn5);add(btn6);add(btn7);add(btn8);add(btn9); add(submit);  
		btn1.addActionListener(this);  
		btn2.addActionListener(this);  
		btn3.addActionListener(this);  
		btn4.addActionListener(this);  
		btn5.addActionListener(this);  
		btn6.addActionListener(this);  
		btn7.addActionListener(this);  
		btn8.addActionListener(this);  
		btn9.addActionListener(this);  
		submit.addActionListener(this);  
  	
		submit.setBackground(Color.black);  
		submit.setForeground(Color.red);  
		setSize(300,350);  
		setLayout(null);  
		setVisible(true);  
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	}//end of constructor  
  	
	public void actionPerformed(ActionEvent e){  
		if(e.getSource()==submit){  
			String s=btn4.getLabel();  
			btn4.setLabel(btn9.getLabel());  
			btn9.setLabel(s);  
			s=btn1.getLabel();  
			btn1.setLabel(btn5.getLabel());  
			btn5.setLabel(s);  
			s=btn2.getLabel();  
			btn2.setLabel(btn7.getLabel());  
			btn7.setLabel(s);  
		}  
		if(e.getSource()==btn1){  
			String s=btn1.getLabel();  
			if(btn2.getLabel().equals(" ")){ 
				btn2.setLabel(s); btn1.setLabel(" ");
			}  
			else if(btn4.getLabel().equals(" ")){
				btn4.setLabel(s); btn1.setLabel(" ");
			}  
	 	}//end of if  
  	
		if(e.getSource()==btn3){  
			String s=btn3.getLabel();  
			if(btn2.getLabel().equals(" ")){ 
				btn2.setLabel(s); btn3.setLabel(" ");
			}  
			else if(btn6.getLabel().equals(" ")){ 
				btn6.setLabel(s); btn3.setLabel(" ");
			}  
 		}//end of if  
  	
		if(e.getSource()==btn2){  
			String s=btn2.getLabel();  
			if(btn1.getLabel().equals(" ")){ 
				btn1.setLabel(s); btn2.setLabel(" ");
			}  
			else if(btn3.getLabel().equals(" ")){ 
				btn3.setLabel(s); btn2.setLabel(" ");
			}  
			else if(btn5.getLabel().equals(" ")){ 
				btn5.setLabel(s); btn2.setLabel(" ");
			}  
	 	}//end of if  
  	
		if(e.getSource()==btn4){  
			String s=btn4.getLabel();  
			if(btn1.getLabel().equals(" ")){ 
				btn1.setLabel(s); btn4.setLabel(" ");
			}  
			else if(btn7.getLabel().equals(" ")){ 
				btn7.setLabel(s); btn4.setLabel(" ");
			}  
			else if(btn5.getLabel().equals(" ")){ 
				btn5.setLabel(s); btn4.setLabel(" ");
			}  
 		}//end of if  
  	
		if(e.getSource()==btn5){  
			String s=btn5.getLabel();  
			if(btn2.getLabel().equals(" ")){ 
				btn2.setLabel(s); btn5.setLabel(" ");
			}  
			else if(btn4.getLabel().equals(" ")){ 
				btn4.setLabel(s); btn5.setLabel(" ");
			}  
			else if(btn6.getLabel().equals(" ")){ 
				btn6.setLabel(s); btn5.setLabel(" ");
			}  
			else if(btn8.getLabel().equals(" ")){ 
				btn8.setLabel(s); btn5.setLabel(" ");
			}  
 		}//end of if  
  	
		if(e.getSource()==btn6){ 
			String s=btn6.getLabel();  
			if(btn9.getLabel().equals(" ")){ 
				btn9.setLabel(s); btn6.setLabel(" ");
			}  
			else if(btn3.getLabel().equals(" ")){ 
				btn3.setLabel(s); btn6.setLabel(" ");
			}  
			else if(btn5.getLabel().equals(" ")){ 
				btn5.setLabel(s); btn6.setLabel(" ");
			}  
  	
 		}//end of if  
  	
		if(e.getSource()==btn7){  
			String s=btn7.getLabel();  
			if(btn4.getLabel().equals(" ")){ 
				btn4.setLabel(s); btn7.setLabel(" ");
			}  
			else if(btn8.getLabel().equals(" ")){ 
				btn8.setLabel(s); btn7.setLabel(" ");
			}  
 		}//end of if  
  	
		if(e.getSource()==btn8){  
			String s=btn8.getLabel();  
			if(btn7.getLabel().equals(" ")){ 
				btn7.setLabel(s); btn8.setLabel(" ");
			}  
			else if(btn9.getLabel().equals(" ")){ 
				btn9.setLabel(s); btn8.setLabel(" ");
			}  
			else if(btn5.getLabel().equals(" ")){ 
			btn5.setLabel(s); btn8.setLabel(" ");
			}  
 		}//end of if  
 	
		if(e.getSource()==btn9){  
			String s=btn9.getLabel();  
			if(btn6.getLabel().equals(" ")){ 
			btn6.setLabel(s); btn9.setLabel(" ");
			}  
			else if(btn8.getLabel().equals(" ")){ 
				btn8.setLabel(s); btn9.setLabel(" ");
				
			}  
			if(btn1.getLabel().equals("1")&&btn2.getLabel().equals("2")&&btn3.getLabel()  
			.equals("3")&&btn4.getLabel().equals("4")&&btn5.getLabel().equals("5")  
			&&btn6.getLabel().equals("6")&&btn7.getLabel().equals("7")&&btn8.getLabel()  
			.equals("8")&&btn9.getLabel().equals(" ")){   
				JOptionPane.showMessageDialog(PuzzleGame.this,"you won!!!");  
			}  
		}//end of if
	}
    	
	public static void main(String[] args){  
		new PuzzleGame();  
	}
}
You can also try this code with Online Java Compiler
Run Code

 

OUTPUT

Puzzle Game in Java

Check out this problem - 8 Queens Problem

Frequently Asked Questions

What is Java AWT?

Java AWT is known as “Advanced Window Toolkit” it is a platform-dependent API that provides Graphical User Interface.

What is JComponent used for?

JComponent is used for graphics designing.

What is the getUI() used for?

“getUI()” returns the Look & Feel object that renders the component.

What is JFrame?

JFrame is a container in JavaJava which creates a window on the screen.

What is JButton? 

It is a graphical element that provides control to the user. It triggers some action when clicked.

Conclusion

In this article, we learned the “Puzzle Game in Java” by explaining and examples. We also implemented the logic to program a simple puzzle game in JavaJava using java swing and awt.

Also read,

 

Refer to our guided paths on Coding Ninjas Studio to learn more about C programming, DSA, Javascript, etc. Enroll in our courses and refer to the mock test and problems available. Take a look at the interview experiences and interview bundle for placement preparations.

Do upvote our blog to help other ninjas grow.

Happy Learning!

Thankyou from Coding Ninjas
Live masterclass