Suche nach speziellen Bedienung für Untermenü Ausgabe.
-
Hallo Leute !
Ich habe klassisches Hauptmenü erstellt:
#include "kartenspiel.h" #include <cstdlib> #include <iostream> #include <time.h> using namespace std; /* * */ int main() { Kartenspiel k; int a; do{ cout << " === Kartenspiel Menue === \n" << "1 Karten mischen\n " << "2 Karten austeilen\n " << "3 Karten eines Spielers ansehen\n " << "0 BEENDEN " << endl; cout << "Auswahl (0-3): "; cin >> a; switch(a) { case 1: k.mischen(); break; case 2: k.austeilen(); break; case 3: do{ k.spielerAuswahl(); // die Ausgabe des Untermenüpunkte nur wenn //vorher ausgewählt worden ist } while(a == 2); break; } } while( a > 0); return 0; }
In Klasse kartenspiel.cpp habe ich eine Funktion SpielerAuswahl(), welches ein
ein zweites Menü besitzt. Dieses zeigt die Karten jedes Spielers an.void Kartenspiel::spielerAuswahl() { char z; do{ cout << "Zeige Karten von...\n" << " (a) Spieler1\n " << " (b) Spieler2\n " << " (c) Spieler3\n " << " (d) Spieler4\n " << " (e) Beenden " << endl; cout << " Auswahl a-e: "; cin >> z; switch(z){ case 'a': for(int i = 0; i < 8; i++){ cout << + " " + spieler1[i].toString() << endl; } break; case 'b': for(int i = 0; i < 8; i++) { cout << + "" + spieler2[i].toString() << endl; } break; case 'c': for(int i = 0; i < 8; i++) { cout << + "" + spieler3[i].toString() << endl; } break; case 'd' : for(int i = 0; i < 8; i++) { cout << + "" + spieler4[i].toString() << endl; } break; } }while(z < 'e'); }
Jetz möchte ich so machen, dass die Ausgabe in Untermenü nur dann Ausgeführt wird, wenn vorher die Karten gemischt worden sind ( also if ( case 2 ausgeführt ist ) gebe mir case 3 des Hauptmenüns ). Habe es schon wie ihr in der Main sieht versucht mit
if(eingabe == 2) { k.spielerAuswahl(); }
Aber leider funktioniert es nicht...
Wie kann man das am besten Lösen?
-
Benutze doch einfach ein bool-Flag und frage dieses dann ab.
-
Hi Helenchen,
versuchs doch mal so:
#include "kartenspiel.h" #include <cstdlib> #include <iostream> #include <time.h> using namespace std; /* * */ int main() { Kartenspiel k; int a; int gemischt = 0; // ob gemischt wurde, Voreinstellung nicht do{ cout << " === Kartenspiel Menue === \n" << "1 Karten mischen\n " << "2 Karten austeilen\n " << "3 Karten eines Spielers ansehen\n " << "0 BEENDEN " << endl; cout << "Auswahl (0-3): "; cin >> a; switch(a) { case 1: k.mischen(); gemischt = 1; // es wurde gemischt break; case 2: k.austeilen(); break; case 3: if (gemischt == 1) // wenn gemischt wurde k.spielerAuswahl(); break; } } while( a > 0); return 0; }
Gruß Mümmel