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
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
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!