Implementing the Bingo Game
C++
// C++ Program to implement // Bingo Game #include <bits/stdc++.h> using namespace std; // Represents a Bingo card struct BingoCard { vector< int > numbers; }; // Function to generate a random number int generateRandomNumber( int min, int max) { return min + ( rand () % (max - min + 1)); // Mark the number as drawn for Player // 1 } // Function to create a Bingo card BingoCard createBingoCard() { BingoCard card; vector< int > possibleNumbers; for ( int i = 1; i <= 25; ++i) { possibleNumbers.push_back(i); } random_shuffle(possibleNumbers.begin(), possibleNumbers.end()); for ( int i = 0; i < 25; ++i) { card.numbers.push_back(possibleNumbers[i]); } return card; } // Function to draw a number and mark it on the cards void drawNumberAndMark(BingoCard& player1Card, BingoCard& player2Card, int number) { for ( int i = 0; i < player1Card.numbers.size(); ++i) { // Mark the number as drawn for Player // 1 if (player1Card.numbers[i] == number) { player1Card.numbers[i] = 0; } // Mark the number as drawn for Player // 2 if (player2Card.numbers[i] == number) { player2Card.numbers[i] = 0; } } } // Function to check if a player has achieved Bingo bool hasBingo( const BingoCard& card) { // Check rows, columns, and diagonals for a Bingo // pattern Implement your logic here for ( int i = 0; i < 5; ++i) { // Check rows if (card.numbers[i * 5] == 0 && card.numbers[i * 5 + 1] == 0 && card.numbers[i * 5 + 2] == 0 && card.numbers[i * 5 + 3] == 0 && card.numbers[i * 5 + 4] == 0) { return true ; } // Check columns if (card.numbers[i] == 0 && card.numbers[i + 5] == 0 && card.numbers[i + 10] == 0 && card.numbers[i + 15] == 0 && card.numbers[i + 20] == 0) { return true ; } } // Check diagonals if ((card.numbers[0] == 0 && card.numbers[6] == 0 && card.numbers[12] == 0 && card.numbers[18] == 0 && card.numbers[24] == 0) || (card.numbers[4] == 0 && card.numbers[8] == 0 && card.numbers[12] == 0 && card.numbers[16] == 0 && card.numbers[20] == 0)) { return true ; } return false ; } // Function to display the Bingo card void displayCard( const BingoCard& card) { for ( int i = 0; i < card.numbers.size(); ++i) { cout << (card.numbers[i] ? std::to_string(card.numbers[i]) : "X" ) << "\t" ; if ((i + 1) % 5 == 0) { std::cout << std::endl; } } } int main() { // Seed the random number generator with // current time srand ( time (0)); BingoCard player1Card = createBingoCard(); BingoCard player2Card = createBingoCard(); // Player 1 starts int currentPlayer = 1; while ( true ) { BingoCard& currentCard = (currentPlayer == 1) ? player1Card : player2Card; // Numbers between 0 and 26 int drawnNumber = generateRandomNumber(0, 26); drawNumberAndMark(player1Card, player2Card, drawnNumber); cout << "Player " << currentPlayer << " - Drawn Number: " << drawnNumber << endl; // Display both players' updated Bingo cards cout << "Player 1's Card:\n" ; displayCard(player1Card); cout << "--------------------------" << endl; cout << "Player 2's Card:\n" ; displayCard(player2Card); cout << "--------------------------" << endl; if (hasBingo(currentCard)) { cout << "Player " << currentPlayer << " has achieved Bingo! Congratulations!" << endl; break ; } // Switch players currentPlayer = (currentPlayer == 1) ? 2 : 1; } return 0; } |
Output:
Player 1 - Drawn Number: 14
Player 1's Card:
25 15 22 12 10
24 23 5 16 20
21 7 11 6 3
1 4 13 17 18
19 X 8 9 2
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 15 20 12
5 X 25 4 19
17 9 18 7 23
11 21 3 6 2
--------------------------
Player 2 - Drawn Number: 11
Player 1's Card:
25 15 22 12 10
24 23 5 16 20
21 7 X 6 3
1 4 13 17 18
19 X 8 9 2
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 15 20 12
5 X 25 4 19
17 9 18 7 23
X 21 3 6 2
--------------------------
Player 1 - Drawn Number: 15
Player 1's Card:
25 X 22 12 10
24 23 5 16 20
21 7 X 6 3
1 4 13 17 18
19 X 8 9 2
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
5 X 25 4 19
17 9 18 7 23
X 21 3 6 2
--------------------------
Player 2 - Drawn Number: 21
Player 1's Card:
25 X 22 12 10
24 23 5 16 20
X 7 X 6 3
1 4 13 17 18
19 X 8 9 2
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
5 X 25 4 19
17 9 18 7 23
X X 3 6 2
--------------------------
Player 1 - Drawn Number: 6
Player 1's Card:
25 X 22 12 10
24 23 5 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 2
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
5 X 25 4 19
17 9 18 7 23
X X 3 X 2
--------------------------
Player 2 - Drawn Number: 2
Player 1's Card:
25 X 22 12 10
24 23 5 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
5 X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 - Drawn Number: 5
Player 1's Card:
25 X 22 12 10
24 23 X 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 2 - Drawn Number: 21
Player 1's Card:
25 X 22 12 10
24 23 X 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 - Drawn Number: 6
Player 1's Card:
25 X 22 12 10
24 23 X 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
22 10 16 24 8
1 13 X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 2 - Drawn Number: 22
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 13 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
X 10 16 24 8
1 13 X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 - Drawn Number: 13
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 X 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
X 10 16 24 8
1 X X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 2 - Drawn Number: 6
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 X 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
X 10 16 24 8
1 X X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 - Drawn Number: 21
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 X 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
X 10 16 24 8
1 X X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 2 - Drawn Number: 22
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 X 17 18
19 X 8 9 X
--------------------------
Player 2's Card:
X 10 16 24 8
1 X X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 - Drawn Number: 8
Player 1's Card:
25 X X 12 10
24 23 X 16 20
X 7 X X 3
1 4 X 17 18
19 X X 9 X
--------------------------
Player 2's Card:
X 10 16 24 X
1 X X 20 12
X X 25 4 19
17 9 18 7 23
X X 3 X X
--------------------------
Player 1 has achieved Bingo! Congratulations!
Create Bingo Game Using C++
Bingo, a timeless game of chance and anticipation, has been captivating players for generations. The thrill of marking numbers off your card and the excitement of shouting “Bingo!” are experiences that transcend time. In this article, we will guide you through the process of creating your very own Bingo game using the versatile and powerful C++ programming language.