#include <stdio.
h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_QUESTIONS 100
#define MAX_CONTESTANTS 50
#define MAX_CATEGORIES 10
// Structure to store questions
typedef struct {
char category[50];
char text[256];
char choices[4][100];
int correctAnswer;
int difficulty;
} Question;
// Structure to store contestant information
typedef struct {
char name[50];
int birthYear;
char phone[15];
char city[50];
int correctAnswers;
} Contestant;
Question questions[MAX_QUESTIONS];
Contestant contestants[MAX_CONTESTANTS];
int questionCount = 0, contestantCount = 0;
void loadQuestions(const char *filename);
void loadContestants(const char *filename);
void playGame();
void showMenu();
void showStatistics();
void useLifeline(int questionIndex);
int main() {
int choice;
do {
showMenu();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
playGame();
break;
case 2:
loadQuestions("questions.txt");
break;
case 3:
loadContestants("contestants.txt");
break;
case 4:
showStatistics();
break;
case 5:
printf("Exiting the game.\n");
break;
default:
printf("Invalid choice, please try again.\n");
}
} while (choice != 5);
return 0;
}
void loadQuestions(const char *filename) {
FILE *file = fopen(filename, "r");
if (!file) {
printf("Error opening questions file!\n");
return;
}
questionCount = 0;
while (fscanf(file, "%49[^#]#%255[^#]#%99[^#]#%99[^#]#%99[^#]#%99[^#]#%d#%d\n",
questions[questionCount].category, questions[questionCount].text,
questions[questionCount].choices[0],
questions[questionCount].choices[1],
questions[questionCount].choices[2],
questions[questionCount].choices[3],
&questions[questionCount].correctAnswer,
&questions[questionCount].difficulty) == 8) {
questionCount++;
}
fclose(file);
printf("Questions loaded successfully!\n");
}
void loadContestants(const char *filename) {
FILE *file = fopen(filename, "r");
if (!file) {
printf("Error opening contestants file!\n");
return;
}
contestantCount = 0;
while (fscanf(file, "%49[^#]#%d#%14[^#]#%49[^#]\n",
contestants[contestantCount].name,
&contestants[contestantCount].birthYear,
contestants[contestantCount].phone,
contestants[contestantCount].city) == 4) {
contestantCount++;
}
fclose(file);
printf("Contestants loaded successfully!\n");
}
void playGame() {
srand(time(NULL));
int contestantIndex = rand() % contestantCount;
Contestant *currentContestant = &contestants[contestantIndex];
currentContestant->correctAnswers = 0;
printf("\nContestant: %s from %s\n", currentContestant->name,
currentContestant->city);
int lifelinesUsed = 0;
for (int i = 0; i < 5; i++) {
int questionIndex = rand() % questionCount;
printf("\nQuestion %d: %s\n", i + 1, questions[questionIndex].text);
for (int j = 0; j < 4; j++) {
printf("%d) %s\n", j + 1, questions[questionIndex].choices[j]);
}
if (lifelinesUsed < 2) {
printf("Use lifeline? (1 for 50/50, 2 for Double Dip, 0 to skip): ");
int lifeline;
scanf("%d", &lifeline);
if (lifeline == 1 || lifeline == 2) {
useLifeline(questionIndex);
lifelinesUsed++;
}
}
int answer;
printf("Your answer: ");
scanf("%d", &answer);
if (answer == questions[questionIndex].correctAnswer) {
printf("Correct!\n");
currentContestant->correctAnswers++;
} else {
printf("Wrong! The correct answer was %d\n",
questions[questionIndex].correctAnswer);
break;
}
}
printf("Game Over. %s answered %d questions correctly.\n", currentContestant-
>name, currentContestant->correctAnswers);
}
void showStatistics() {
printf("\nStatistics Function Placeholder\n");
}
void useLifeline(int questionIndex) {
printf("Lifeline used! Eliminating two wrong answers.\n");
// Placeholder for lifeline logic
}
void showMenu() {
printf("\nWho Wants to Be a Millionaire\n");
printf("1. Play Game\n");
printf("2. Load Questions\n");
printf("3. Load Contestants\n");
printf("4. Show Statistics\n");
printf("5. Exit\n");
}