Bingo
// 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([Link](),
[Link]());
for (int i = 0; i < 25; ++i) {
[Link].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 < [Link](); ++i) {
// Mark the number as drawn for Player
// 1
if ([Link][i] == number) {
[Link][i] = 0;
}
// Mark the number as drawn for Player
// 2
if ([Link][i] == number) {
[Link][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 ([Link][i * 5] == 0
&& [Link][i * 5 + 1] == 0
&& [Link][i * 5 + 2] == 0
&& [Link][i * 5 + 3] == 0
&& [Link][i * 5 + 4] == 0) {
return true;
}
// Check columns
if ([Link][i] == 0 && [Link][i + 5] == 0
&& [Link][i + 10] == 0
&& [Link][i + 15] == 0
&& [Link][i + 20] == 0) {
return true;
}
}
// Check diagonals
if (([Link][0] == 0 && [Link][6] == 0
&& [Link][12] == 0 && [Link][18] == 0
&& [Link][24] == 0)
|| ([Link][4] == 0 && [Link][8] == 0
&& [Link][12] == 0
&& [Link][16] == 0
&& [Link][20] == 0)) {
return true;
}
return false;
}
// Function to display the Bingo card
void displayCard(const BingoCard& card)
{
for (int i = 0; i < [Link](); ++i) {
cout << ([Link][i]
? std::to_string([Link][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!