How To Make A Puzzle Game In Python


Python is a powerful programming language that can be used to create various types of games. In this tutorial, we will explore how to make a simple puzzle game using Python. Puzzle games are a popular genre that challenge players to solve problems or complete tasks within a given set of constraints. By following the steps outlined in this article, you will be able to create your own puzzle game and customize it to suit your preferences.


Before diving into creating a puzzle game, make sure you have Python installed on your system. You can download and install Python from the official Python website ( Additionally, a basic understanding of Python programming concepts, such as variables, functions, and loops, is recommended.

Setting Up the Game

To begin, let’s set up the basic structure of our puzzle game. Open your favorite Python integrated development environment (IDE) or text editor and create a new Python file. Save it with a suitable name, such as “”.

Importing Required Modules

To create a puzzle game, we need to import the necessary modules. In this case, we will be using the `random` module to shuffle the puzzle pieces and the `time` module to introduce a time limit. Add the following lines of code at the beginning of your Python file:


import random

import time


Defining the Game Board

Next, let’s define the game board. In our puzzle game, we will represent the board as a 3×3 grid. Each cell on the grid will contain a number from 1 to 8, representing the puzzle pieces, and an empty cell represented by 0. Add the following lines of code to initialize the game board:


board = [[1, 2, 3],

[4, 5, 6],

[7, 8, 0]]


Shuffling the Puzzle Pieces

A puzzle game becomes interesting when the pieces are in a random order. To achieve this, we will shuffle the puzzle pieces using the `random` module. Add the following lines of code to shuffle the puzzle pieces:




Displaying the Game Board

To visualize the game board, we can create a function that prints the current state of the board on the console. Add the following lines of code to define the `display_board` function:


def display_board():

for row in board:



Main Game Loop

Now that we have set up the game board and the display function, let’s create the main game loop. This loop will keep running until the player solves the puzzle or exits the game. Add the following lines of code to create the main game loop:


while True:


# Game logic goes here

time.sleep(1) # Add a delay of 1 second between each game loop iteration


Implementing Game Logic

The game logic will handle the player’s input and update the game board accordingly. In our puzzle game, the player can move the puzzle pieces by entering the number of the piece they want to move. Add the following lines of code inside the main game loop to implement the game logic:


move = input(“Enter the number of the piece you want to move (1-8): “)

move = int(move)

# Find the position of the piece on the board

piece_row = -1

piece_col = -1

for row in range(len(board)):

for col in range(len(board[row])):

if board[row][col] == move:

piece_row = row

piece_col = col

# Check if the move is valid

if piece_row != -1 and piece_col != -1:

# Check if the empty cell is adjacent to the selected piece

if (piece_row > 0 and board[piece_row – 1][piece_col] == 0) or \

(piece_row < 2 and board[piece_row + 1][piece_col] == 0) or \ (piece_col > 0 and board[piece_row][piece_col – 1] == 0) or \

(piece_col < 2 and board[piece_row][piece_col + 1] == 0): # Swap the selected piece with the empty cell board[piece_row][piece_col], board[empty_row][empty_col] = board[empty_row][empty_col], board[piece_row][piece_col] # Check if the puzzle is solved if board == [[1, 2, 3], [4, 5, 6], [7, 8, 0]]: print(“Congratulations! You solved the puzzle!”) break else: print(“Invalid move! The selected piece cannot be moved.”) else: print(“Invalid move! The selected piece does not exist on the board.”) “`


In this tutorial, we learned how to create a simple puzzle game in Python. We covered the steps required to set up the game, shuffle the puzzle pieces, display the game board, implement the game logic, and create a main game loop. By customizing the game logic and adding additional features, you can create a more complex and engaging puzzle game. Python’s flexibility and ease of use make it an excellent choice for developing various types of games, including puzzle games. Happy coding!

Leave a Comment