Die Erdkundestunde geht weiter und wir erstellen ein C++ Länderquiz in Version 2…


Das C++ Länderquiz Version 2:

#include <iostream>
#include <string>

struct Antwort {
std::string question;
std::string correctAnswer;
};

int main() {
const int numQuestions = 5; // Anzahl der Fragen
Antwort questions[numQuestions] = {
{"Was ist die Hauptstadt von Deutschland?", "Berlin"},
{"Was ist die Haupstadt von Frankreich?", "Paris"},
{"Was ist die Haupstadt von Spanien?", "Madrid"},
{"Was ist die Hauptstadt von Italien?", "Rom"},
{"Was ist die Hauptstadt von Portugal?", "Lissabon"}
};

int correctAnswers = 0;

for (int i = 0; i < numQuestions; ++i) {
std::cout << questions[i].question << "\n";
std::string userAnswer;
std::cin >> userAnswer;

if (userAnswer == questions[i].correctAnswer) {
correctAnswers++;
std::cout << "Richtig!\n";
}
else {
std::cout << "Falsch, die richtige Antwort ist: " << questions[i].correctAnswer << "\n";
}
}

if (correctAnswers >= numQuestions / 2) { // Beispiel für ein Kriterium
std::cout << "Du bist sehr gut in Erdkunde.\n";
}
else {
std::cout << "Noch nicht so gut, aber du kannst es verbessern!\n";
}
return 0;
}

Was macht der Quellcode eigentlich?

Die Schreibweise wird immer noch nicht ignoriert und das Programm betrachtet “berlin“ als falsche Antwort. Das soll hier und jetzt aber auch egal sein. Viel interessanter finde ich es, dass das Programm weiterläuft und mit der nächsten Frage weitermacht. Außerdem erlaubt das Programm noch keinen Ausstieg aus der Quizrunde. Der Benutzer ist also gezwungen das Spiel bis zum Ende zu spielen oder halt das Terminal auf die harte Tour zu schließen.

Da dieser Code schon sehr komplex ist, werde ich in den nächsten Versionen für das Länderquiz wieder auf Version 1 zurückgreifen. In diesem Code ist bereits ein “struct“ verbaut, ein Array, eine for-Schleife und eine if-else-Anweisung. Für einen Anfänger ist das vielleicht schon zu viel.

Von Torsten