How KBC is Played?

KBC game is very easy to play. In the game, the user selects the correct answers to multiple-choice questions to win a prize or sum of amount that grows with each correct response. The game’s main objective is to select the right answer from the multiple choices. it ends when the user gives a wrong answer.

The following rules specify how the answers will be evaluated and how the players will be rewarded.

Rules of KBC

  1. If the answer is correct then the player wins the corresponding amount of prize and proceeds to the next question.
  2. If the answer is incorrect then the game ends. and the player takes the corresponding amount of the prize.
  3. The game ends either when the player gives an incorrect answer or successfully answers all 10 questions.
  4. The player’s total winnings are displayed at the end of the game.

Lifelines

  • 50:50 Lifeline: Removes two incorrect options and display reaming two option and one wrong option.
  • Flip the Question Lifeline: It Replaces the current question with another question.
  • Hint Lifeline: Provides a hint related to the question.

The player can only select a lifeline three times.

KBC Game in C++

KBC is an Indian television game show that stands for Kaun Banega Crorepati. In this post, we will develop this game in C++ using fundamental knowledge.

Similar Reads

How KBC is Played?

KBC game is very easy to play. In the game, the user selects the correct answers to multiple-choice questions to win a prize or sum of amount that grows with each correct response. The game’s main objective is to select the right answer from the multiple choices. it ends when the user gives a wrong answer....

Features of KBC Game in C++

The C++ KBC Game offers the following features:...

C++ Program to Implement KBC Game

C++ // C++ program to implement the kbc game #include #include #include #include #include    using namespace std;    // Function prototypes void displayWelcomeMessage(); int askQuestion(int questionSet,                 const vector >& questions,                 int); void displayLifelines(int lifelinesUsed); void fiftyFifty(vector& options, int correctOption); void flipTheQuestion(int& questionIndex); void provideHint(vector >&, int); int getOption(const vector >& Question,               int currentIndex);    int main() {     srand(time(0));        int totalAmount = 0;     // amount changes as the number of questions increases     int questionSetAmounts[]         = { 1000,  4000,  8000,  15000, 25000,             40000, 60000, 75000, 90000, 100000 };        // question bank     vector > questions = {         { "What is the capital of France?", "A. Paris",           "B. Berlin", "C. Rome", "D. Madrid", "A" },         { "Which planet is known as the Red Planet?",           "A. Mars", "B. Venus", "C. Jupiter", "D. Saturn",           "A" },         { "What is the largest mammal?", "A. Elephant",           "B. Blue Whale", "C. Giraffe", "D. Lion", "B" },         { "Which of the following is observed as Sports "           "Day every year?",           "A. 22nd April", "B. 26th  july",           "C. 29th August", "D. 2nd October", "D: Apr 28",           "A" },         { "Pongal is a popular festival of which state?",           "A. Karnataka", "B. Kerala", "C. Tamil Nadu",           "D. Andhra Pradesh", "C" },         { "The International Literacy Day is observed on:",           "A. Sep 8", "B. Nov 28", "C. May 2", "D. Sep 22",           "A" },         { "Which of the-following is wrongly matched?",           "A. Qutab Minar- Delhi", "B. Taj Mahal -Agra",           "C. Ajanta Caves -Maharashtra",           "D. Charminar -Lucknow", "D" },         { "The 227 year old 'Nawab Saheb Ki Haveli' is "           "Iocated at",           "A. Hyderabad", "B. Jaipur", "C. New Delhi",           "D. Agra", "B" },         { "Who is the current CEO of Google?",           "A. Sundar Pichai", "B. Satya Nadela",           "C. Mahesh", "D. Pintu", "A" },         { "How many kgs are there in a 1 tonne", "A. 100",           "B. 1000", "C. 10", "D. 10000", "B" }     };        // total number of available questions     int numsOfQuestions = questions.size();        // lifeline and used question     int lifelinesUsed = 0;     bool usedTracker[10] = { false };        displayWelcomeMessage();        int flag = 1;     int i = 0;        // main loop     for (int loop = 0; loop < numsOfQuestions; ++loop) {         // selecting a random question         if (flag) {                     while (usedTracker[i]) {                 i = rand() % 10;             }         }         flag = 1;         int amount = questionSetAmounts[loop];         // asking question         int correctOption             = tolower(askQuestion(i, questions, i));            char wantToUseLifeline;            // asking choice         char userChoice;         cout << "Enter your choice (A/B/C/D), Enter (L) "                 "for lifeline: ";         cin >> userChoice;         userChoice = tolower(userChoice);            // lifeline logic         if (userChoice == 'l' && lifelinesUsed < 3) {                            displayLifelines(lifelinesUsed);             int lifelineChoice;             cout << "Enter your lifeline choice: ";             cin >> lifelineChoice;                switch (lifelineChoice) {             case 1:                 fiftyFifty(questions[i], correctOption);                 lifelinesUsed++;                 loop--;                 flag = 0;                 continue;             case 2:                 flipTheQuestion(i);                 lifelinesUsed++;                 loop--;                 flag = 1;                 continue;             case 3:                 provideHint(questions, i);                 lifelinesUsed++;                 loop--;                 flag = 0;                 continue;             default:                 cout << "Invalid lifeline choice. "                         "Proceeding without using lifeline."                      << endl;                 lifelinesUsed++;                 loop--;                 flag = 0;                 continue;             }         }            // options logic         if (userChoice == correctOption) {             totalAmount += amount;             cout << "Correct! You've won $" << totalAmount                  << endl;             usedTracker[i] = true;         }         else {             cout << "Incorrect! You won $" << totalAmount                  << endl;             break;         }     }        cout << "Thanks for playing KBC! You won a total of $"          << totalAmount << endl;        return 0; }    // function to find the index of correct option int getOption(const vector >& Question,int currentIndex) {     return (Question[currentIndex][5][0]) - 64; }    // displaying welcome message void displayWelcomeMessage() {     cout << "Welcome to Kaun Banega Crorepati (KBC)!"          << endl;     cout << "Answer the following questions to win big!"          << endl;     cout << "You can use lifelines to help you along the "             "way."          << endl          << endl; }    // printing quetion and returning correct option int askQuestion(int questionSet,                 const vector >& questions,                 int currentIndex) {     cout << "\nQ" << currentIndex + 1 << " "          << questions[questionSet][0] << endl;     for (int i = 1; i <= 4; ++i) {         cout << questions[questionSet][i] << endl;     }        int correctOption = questions[questionSet][5][0];     return correctOption; }    void displayLifelines(int lifelinesUsed) {     cout << "Choose a lifeline:" << endl;     cout << "1. 50:50 - Remove two wrong options" << endl;     cout << "2. Flip the question - Replace the question"          << endl;     cout << "3. Hint - Get a hint for the question" << endl;     cout << "Lifelines used: " << lifelinesUsed << "/3"          << endl; }    // 50-50 lifeline logic void fiftyFifty(vector& question, int correctOption) {     vector wrongOptions;     for (int i = 1; i <= 4; ++i) {         if (question[i][0] != toupper(correctOption)) {             wrongOptions.push_back(i);         }     }        int removeOption1 = wrongOptions[rand() % 3];     int removeOption2 = removeOption1;     while (removeOption1 == removeOption2) {         removeOption2 = wrongOptions[rand() % 3];     }        cout << "50:50 - Options " << question[removeOption1]          << " and " << question[removeOption2]          << " are removed.\n"          << endl;     question[removeOption1] = question[removeOption2] = "";        cin.ignore(numeric_limits::max(),                '\n'); // Clear newline from previous input }    // flip the question lifeline logic void flipTheQuestion(int& questionIndex) {     cout << "Flipping the question..." << endl;     questionIndex = rand() % 10; }    // hint provider lifeline logic void provideHint(vector >& Questions,                  int currentIndex) {     cout << "Hint: The correct option starts with the "             "letter "          << Questions[currentIndex]                      [getOption(Questions, currentIndex)][3]          << "." << endl; }...

Contact Us