So wurden gebeten, ein Spiel in meiner C++ - Klasse zu machen, nahm ich eine C++ - Klasse vor einer Weile, so dass ich ein wenig eingerostet bin. Ich erinnere mich, dass Sie Arrays und Listen verwenden können?Keine ausgewählte Auswahl aus einer Liste anzeigen?
Der Sinn des Spiels ist es, eine Armeefraktion zu wählen, den Armeetyp auszuwählen und dann jemanden anzugreifen. Sobald ich zum Angriffsteil komme, anstatt eine Menge if-Anweisungen zu machen, die nach der gewählten Fraktion aus dem vorherigen Menü suchen, könnte ich die Fraktionen in ein Array vom Anfang des Programms implementieren und sobald ich zur Angriffsstufe komme, renne ich durch das Array und vergleichen Sie den vom Benutzer gewählten Kontinent mit den Kontinenten im Array und halten Sie einfach eine Ausgabe zurück, die übereinstimmt?
Wenn jemand einen kleinen Code oder einen Link zu einer Website schreiben könnte, die ein Beispiel für so etwas gibt, würde es sehr geschätzt werden, ich möchte es selbst machen, ich habe nicht wirklich etwas komplett für mich geschrieben.
#include <iostream>
using namespace std;
int main() {
// Declare variables
int menuInput = 0, continentInput = 0, armyInput = 0, actionInput = 0;
// Intro
cout << "WELCOME TO WAR" << endl;
// Display main menu
do {
cout << "1) Rules" << endl;
cout << "2) Play Game" << endl;
cout << "3) Quit" << endl;
cout << "Menu choice: ";
cin >> menuInput;
// if rules is selected
if (menuInput == 1) {
cout << endl;
cout << "RULES: " << endl;
cout << "1) Choose your player." << endl;
cout << "2) Choose your army type." << endl;
cout << "3) Choose to attack." << endl;
cout << endl;
}
// if game is selected
else if (menuInput == 2) {
cout << endl;
cout << "START" << endl;
// first do while loop, continent choice
do {
cout << "1) North America" << endl;
cout << "2) South America" << endl;
cout << "3) Europe" << endl;
cout << "4) Africa" << endl;
cout << "5) Asia" << endl;
cout << "6) Australia" << endl;
cout << "7) Antartica" << endl;
cout << "Choose your player from the list: ";
cin >> continentInput;
cout << endl;
// invalid display if selection not in range
if (continentInput <= 0 ||continentInput > 7) {
cout << "INVALID" << endl;
cout << endl;
}
} while (continentInput <= 0 || continentInput > 8);
// second do while loop, army type choice
do {
cout << "1) Army (Ground type forces)" << endl;
cout << "2) Navy (Sea type forces)" << endl;
cout << "3) Air Force (Air type forces)" << endl;
cout << "Choose your army type from the list: ";
cin >> armyInput;
cout << endl;
if (armyInput <= 0 || armyInput > 3) {
cout << "INVALID" << endl;
}
} while (armyInput <= 0 || armyInput > 3);
// third do while loop, who to attack
}
else if (menuInput == 3) {
cout << endl;
cout << "GAME OVER" << endl;
}
else {
// display invlaid input if number choice is not in given range
cout << "INAVLID INPUT" << endl;
}
} while (menuInput != 3);
return 0;
}
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage bearbeiten, um ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel einzufügen, das Ihr Problem zusammen mit den Beobachtungen, die Sie in der Debugger. –
Haben Sie schon Unterricht gelernt? Es wäre besser, wenn du ein Klassenobjekt hättest, das einen Spieler und Armeetyp-Mitglieder hat, die du festlegst, bekommst und dann handelst. https://www.tutorialspoint.com/cplusplus/cpp_classes_objects.htm – DigitalNinja
@DigitalNinja die Klasse ist noch nicht an diesem Punkt angelangt, die erste "Version" soll einfacher codiert werden, aber das ist was ich hatte in Plänen so weit wie objektorientiert. –