Thursday, October 23, 2025
HomeLanguagesCreate Bingo Game Using Python

Create Bingo Game Using Python

A card with a grid of numbers on it is used to play the popular dice game of bingo. Players check off numbers on their cards when they are selected at random by a caller, competing to be the first to mark off all of their numbers in a particular order. We’ll examine how to utilise Python to create a simple bingo game in this lesson.

The following ideas must be understood in order to design a bingo game:

  • Lists: A list is a group of items that can contain any sort of data.
  • Random module: In Python, random numbers are produced using the random package.
  • Loops: Loops are used to repeatedly run a block of code until a predetermined condition is satisfied.
  • Functions: A set of statements that carry out a particular activity are grouped together into functions.

Steps:

  1. Make a list of all potential bingo numbers (1–25).
  2. For a random order of the numbers, mix up the list.
  3. With the centre square denoted as “free,” make a bingo card with a 5×5 grid of numbers.
  4. Make a list of 24 distinct bingo cards with various number combinations.
  5. Write a function that draws a number at random from the shuffled list of bingo numbers and checks to see whether any of the numbers on the players’ bingo cards match the selected number.
  6. When a player has checked off all the numbers in a certain sequence, keep drawing numbers (e.g., a straight line, a diagonal, or all four corners).

Source Code :

Python3




import random
  
bingo_rules = {
    'B': 5,
    'I': 5,
    'N': 5,
    'G': 5,
    'O': 5
}
  
# Define a function to generate a randomized Bingo ball
  
  
def get_bingo_ball(used_balls):
    all_balls = [i for i in range(1, 26)]
    available_balls = set(all_balls) - used_balls
    if available_balls:
        ball = random.choice(list(available_balls))
        used_balls.add(ball)
        return ball
    else:
        return None
  
# Define a function to check if a Bingo card has a winning combination
  
  
def check_bingo(card):
    rows = card
    cols = [[card[j][i] for j in range(5)] for i in range(5)]
    diags = [[card[i][i] for i in range(5)], [card[i][4-i] for i in range(5)]]
    lines = rows + cols + diags
    for line in lines:
        if len(set(line)) == 1 and line[0] != 0:
            return True
    return False
  
  
def generate_card():
    card = [[0]*5 for i in range(5)]
    used_numbers = set()
    for i in range(5):
        for j in range(5):
            if j == 2 and i == 2:
                continue
            while True:
                number = random.randint(i*5+1, i*5+5)
                if number not in used_numbers:
                    card[i][j] = number
                    used_numbers.add(number)
                    break
    return card
  
# Play a game of Bingo
  
  
def play_bingo():
    # Generate two Bingo cards
    card1 = generate_card()
    card2 = generate_card()
  
    # Print out the two Bingo cards
    print("Bingo Card 1:")
    for row in card1:
        print(' '.join([str(n).rjust(2) for n in row]))
    print()
    print("Bingo Card 2:")
    for row in card2:
        print(' '.join([str(n).rjust(2) for n in row]))
    print()
  
    # Start the Bingo game loop
    used_balls = set()
    while True:
        # Generate a new Bingo ball
        ball = get_bingo_ball(used_balls)
        if ball is None:
            print("All Bingo balls have been drawn. The game is a tie.")
            break
  
        # Print out the new Bingo ball
        print("New Bingo ball: ", ball)
  
        # Check if either player has a winning Bingo card
        if check_bingo(card1):
            print("Bingo! Player 1 wins!")
            break
        if check_bingo(card2):
            print("Bingo! Player 2 wins!")
            break
  
        # Wait for player input before drawing the next ball
        input("Press Enter to draw the next Bingo ball...")
  
        # Update the Bingo cards with the new ball
        for i in range(5):
            for j in range(5):
                if card1[i][j] == ball:
                    card1[i][j] = "X"
                if card2[i][j] == ball:
                    card2[i][j] = "X"
  
        # Print out the updated Bingo cards
        print("Bingo Card 1:")
        for row in card1:
            print(' '.join([str(n).rjust(2) if isinstance(
                n, int) else n.rjust(2) for n in row]))
        print()
        print("Bingo Card 2:")
        for row in card2:
            print(' '.join([str(n).rjust(2) if isinstance(
                n, int) else n.rjust(2) for n in row]))
        print()
  
  
play_bingo()


Output:

Bingo Card 1:

1  3  5  4  2

8  7  6  9 10

15 13  0 11 12

16 19 20 17 18

23 21 25 22 24

     

Bingo Card 2:

3  2  4  5  1

10  7  9  6  8

15 11  0 12 13

19 18 20 16 17

22 21 25 24 23

     

New Bingo ball:  10

Press Enter to draw the next Bingo ball…

Bingo Card 1:

1  3  5  4  2

8  7  6  9  X

15 13  0 11 12

16 19 20 17 18

23 21 25 22 24

     

Bingo Card 2:

3  2  4  5  1

X  7  9  6  8

15 11  0 12 13

19 18 20 16 17

22 21 25 24 23

     

New Bingo ball:  11

Press Enter to draw the next Bingo ball…

Bingo Card 1: 

1  3  5  4  2

8  7  6  9  X

15 13  0  X 12

16 19 20 17 18

23 21 25 22 24

     

Bingo Card 2:

3  2  4  5  1

X  7  9  6  8

15  X  0 12 13

19 18 20 16 17

22 21 25 24 23

    

New Bingo ball:  22

Press Enter to draw the next Bingo ball…

Bingo Card 1:

1  3  5  4  2

8  7  6  9  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

3  2  4  5  1

X  7  9  6  8

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

     

New Bingo ball:  1

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  3  5  4  2

8  7  6  9  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

3  2  4  5  X

X  7  9  6  8

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

     

New Bingo ball:  9

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  3  5  4  2

8  7  6  X  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

3  2  4  5  X

X  7  X  6  8

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

     

New Bingo ball:  8

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  3  5  4  2

X  7  6  X  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

3  2  4  5  X

X  7  X  6  X

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

     

New Bingo ball:  3

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  4  2

X  7  6  X  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

X  2  4  5  X

X  7  X  6  X

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

    

New Bingo ball:  4

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  7  6  X  X

15 13  0  X 12

16 19 20 17 18

23 21 25  X 24

     

Bingo Card 2:

X  2  X  5  X

X  7  X  6  X

15  X  0 12 13

19 18 20 16 17

X 21 25 24 23

     

New Bingo ball:  18

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  7  6  X  X

15 13  0  X 12

16 19 20 17  X

23 21 25  X 24

     

Bingo Card 2:

X  2  X  5  X

X  7  X  6  X

15  X  0 12 13

19  X 20 16 17

X 21 25 24 23

     

New Bingo ball:  13

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  7  6  X  X

15  X  0  X 12

16 19 20 17  X

23 21 25  X 24

     

Bingo Card 2:

X  2  X  5  X

X  7  X  6  X

15  X  0 12  X

19  X 20 16 17

X 21 25 24 23

    

New Bingo ball:  20

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  7  6  X  X

15  X  0  X 12

16 19  X 17  X

23 21 25  X 24

    

Bingo Card 2:

X  2  X  5  X

X  7  X  6  X

15  X  0 12  X

19  X  X 16 17

X 21 25 24 23

     

New Bingo ball:  7

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  X  6  X  X

15  X  0  X 12

16 19  X 17  X

23 21 25  X 24

     

Bingo Card 2:

X  2  X  5  X

X  X  X  6  X

15  X  0 12  X

19  X  X 16 17

X 21 25 24 23

    

New Bingo ball:  24

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  X  6  X  X

15  X  0  X 12

16 19  X 17  X

23 21 25  X  X

    

Bingo Card 2:

X  2  X  5  X

X  X  X  6  X

15  X  0 12  X

19  X  X 16 17

X 21 25  X 23

    

New Bingo ball:  12

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  X  6  X  X

15  X  0  X  X

16 19  X 17  X

23 21 25  X  X

     

Bingo Card 2:

X  2  X  5  X

X  X  X  6  X

15  X  0  X  X

19  X  X 16 17

X 21 25  X 23

     

New Bingo ball:  6

Press Enter to draw the next Bingo ball…

Bingo Card 1:

X  X  5  X  2

X  X  X  X  X

15  X  0  X  X

16 19  X 17  X

23 21 25  X  X

    

Bingo Card 2:

X  2  X  5  X

X  X  X  X  X

15  X  0  X  X

19  X  X 16 17

X 21 25  X 23

    

New Bingo ball:  25

Bingo! Player 1 wins!

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS