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.
Setting Up Development Environment
Before we dive into creating our Bingo game, make sure you have a functional C++ development environment in place. Popular choices include compilers like GCC (GNU Compiler Collection) or Visual C++. These tools will help you compile and execute your code seamlessly. With your environment ready, let’s embark on the journey of building the Bingo game!
Designing the Bingo Game
Developing a Bingo game in C++ involves breaking down the implementation into several crucial components:
Bingo Card: We’ll start by defining a structure that represents a Bingo card. This structure will hold the numbers that players aim to mark off.
Number Drawing: Next, we’ll create a mechanism to draw random numbers and ensure that both players update their cards accordingly.
Game Logic: The game should run within a loop until a player achieves Bingo or a predefined condition is met.
Implementing the Bingo Game
// 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!
Playing the Bingo Game
Initiating the Game: Begin by compiling and executing the C++ program to initiate gameplay. The console will showcase the game’s progression and updates as they unfold.
Unfolding Gameplay: As the game proceeds, participants will alternately draw numbers and adjust their individual Bingo cards accordingly.
Achieving Bingo: The game endures until a player successfully forms a Bingo pattern on their card. At this juncture, the program will announce the victor and bring the game to a close.