und erst "Anfänger" im C++ Bereich
ich könnte hilfe bei meinem Spiel "Zahlenraten" Gebrauchen, klappt alles wunderbar, bis auf die Tatsache, dass wenn ich anstatt einer Zahl ein Buchstabe eingebe, das ganze Spiel sozusagen zerstört.
Benutze mit Microsoft Visual C++ 2010 Express
C-Quellcode
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- int limit; // Sagt dem Programm, es kann die Variable "limit" benutzen
- int number; // Sagt dem Programm, es kann die Variable "number" benutzen und gibt ihr den änderbahren wert 0 //
- int random_number = 0; // Sagt dem Programm, es kann die Variable "random_number" benutzen // Die Zufällig generierte Zahl
- int versuche_eigene;
- int versuche;
- int main();
- int Ende();
- void Falsche_Eingabe_Anfang();
- int Falsche_Eingabe_Ende();
- char Auswahl;
- char Anfang;
- int Neustart();
- void Versuche_10();
- void Versuche_15();
- void Versuche_20();
- void Versuche_Unendlich();
- void Versuche_Eigene();
- int main()
- {
- srand((unsigned)time(0));
- Neustart();
- }
- int Neustart()
- {
- system("cls");
- cout << "|*************************|" << endl;
- cout << "| Zahlenraten |" << endl;
- cout << "| By Fabian Hoch |" << endl;
- cout << "| NWT Projekt |" << endl;
- cout << "|*************************|" << endl;
- int versuche = 0;
- cout << "Bitte Nur!! Kleinbuchstaben!! und kein Buchstabe anstatt Zahl eingeben!" << endl;
- cout << "Unendlich Versuche? (A) \n10 Versuche? (B)\n15 Versuche? (C)\n20 Versuche? (D)\nEigene Versuchsanzahl? (E)\nBeenden? (F)" << endl;
- cin >> Anfang;
- switch(Anfang)
- {
- case('a'):
- Versuche_Unendlich();
- case('b'):
- Versuche_10();
- case('c'):
- Versuche_15();
- case('d'):
- Versuche_20();
- case('e'):
- Versuche_Eigene();
- case('f'):
- return 0;
- default:
- cout << "Falsche Eingabe!\n(A), (B) oder (C) oder (D) oder (E) in Kleinbuchstaben bitte" << endl;
- Falsche_Eingabe_Anfang();
- }
- }
- void Versuche_10()
- {
- cout << "Hoechste Zahl?" << endl;
- cin >> limit;
- random_number = (rand()%limit)+1;
- //10 Versuche
- int max_versuche = 10;
- for(versuche = 1; versuche <= max_versuche; versuche++)
- {
- if((versuche > 1) && number > random_number)
- { cout << "Die Zahl ist kleiner!" << endl;
- }
- else if((versuche > 1) && number < random_number)
- { cout << "Die Zahl ist groesser!" << endl;
- }
- cout << "Versuch Nummer: " << versuche << endl;
- //cout << random_number << endl;
- cout << "Wie lautet dein Tipp?" << endl;
- cin >> number;
- if(random_number == number)
- break;
- }
- Ende();
- }
- void Versuche_15()
- {
- //15 Versuche
- cout << "Hoechste Zahl?" << endl;
- cin >> limit;
- random_number = (rand()%limit)+1;
- int max_versuche2 = 15;
- for(versuche = 1; versuche <= max_versuche2; versuche++)
- {
- if((versuche > 1) && number > random_number)
- cout << "Die Zahl ist kleiner!" << endl;
- else if((versuche > 1) && number < random_number)
- cout << "Die Zahl ist groesser!" << endl;
- cout << "Versuch Nummer: " << versuche << endl;
- //cout << random_number << endl;
- cout << "Wie lautet dein Tipp?" << endl;
- cin >> number;
- if(random_number == number)
- break;
- }
- Ende();
- }
- void Versuche_20()
- {
- cout << "Hoechste Zahl?" << endl;
- cin >> limit;
- random_number = (rand()%limit)+1;
- int max_versuche3 = 20;
- for(versuche = 1; versuche <= max_versuche3; versuche++)
- {
- if((versuche > 1) && number > random_number)
- cout << "Die Zahl ist kleiner!" << endl;
- else if((versuche > 1) && number < random_number)
- cout << "Die Zahl ist groesser!" << endl;
- cout << "Versuch Nummer: " << versuche << endl;
- //cout << random_number << endl;
- cout << "Wie lautet dein Tipp?" << endl;
- cin >> number;
- if(random_number == number)
- break;
- }
- Ende();
- }
- void Versuche_Unendlich()
- {
- // Unendlich Versuche
- cout << "Hoechste Zahl?" << endl;
- cin >> limit;
- random_number = (rand()%limit)+1;
- do
- {
- if((versuche > 0) && number > random_number)
- {
- cout << "Die Zahl ist kleiner!" << endl;
- }
- else if((versuche >0) && number < random_number)
- {
- cout << "Die Zahl ist groesser!" << endl;
- }
- versuche++;
- cout << "Versuche: Unendlich" << endl;
- //cout << random_number << endl;
- cout << "Wie lautet dein Tipp?" << endl;
- cin >> number;
- }while(number != random_number);
- Ende();
- }
- void Versuche_Eigene()
- {
- cout << "Dein Versuchslimit?" << endl;
- cin >> versuche_eigene;
- cout << "Hoechste Zahl?" << endl;
- cin >> limit;
- random_number = (rand()%limit)+1;
- for(versuche = 1; versuche <= versuche_eigene; versuche++)
- {
- if((versuche > 1) && number > random_number)
- cout << "Die Zahl ist kleiner!" << endl;
- else if((versuche > 1) && number < random_number)
- cout << "Die Zahl ist groesser!" << endl;
- cout << "Versuch Nummer: " << versuche << endl;
- //cout << random_number << endl;
- cout << "Wie lautet dein Tipp?" << endl;
- cin >> number;
- if(random_number == number)
- break;
- }
- Ende();
- }
- int Ende()
- {
- if(number == random_number)
- { system("cls");//cls ist ein batch Befehl und beudeted "clear screen", kann aber durch den c++ befehl system() in c++ "umgewandelt" werde
- cout << "Versuche: "<< versuche << " Deine Hoechste Zahl: " << limit << "\n\n|Richtig! Die zu erratende Zahl war " << number << endl;
- cout << "|(N)ochmal?\n|(B)eenden?" << endl;
- cin >> Auswahl;
- switch(Auswahl)
- {
- case('n'):
- Neustart();
- case('b'):
- exit(0);
- default:
- cout << "Falsche Eingabe!\n(N) oder (B) in Kleinbuchstaben bitte." << endl;
- Falsche_Eingabe_Ende();
- }
- }else //wenn du's nicht geshafft hast
- {
- system("cls");
- cout << "Versuche: "<< versuche << " Deine Hoechste Zahl: " << limit << "\n\nSchade! Die zu erratende Zahl war " << random_number << endl;
- cout << "(N)eustart? \n(B)eenden?" << endl;
- cin >> Auswahl;
- switch(Auswahl)
- {
- case('n')://wenn "c" in das textfeld eingegeben wurde
- Neustart();
- case('b'):
- exit(0);
- default:
- cout << "Falsche Eingabe!\n(N) oder (B) in Kleinbuchstaben bitte." << endl;
- Falsche_Eingabe_Ende();
- }
- }
- }
- void Falsche_Eingabe_Anfang()
- {
- cin >> Anfang;
- switch(Anfang)
- {
- case('a'):
- Versuche_Unendlich();
- case('b'):
- Versuche_10();
- case('c'):
- Versuche_15();
- case('d'):
- Versuche_20();
- case('e'):
- Versuche_Eigene();
- default:
- cout << "Falsche Eingabe!\n(A), (B) oder (C) oder (D) oder (E) in Kleinbuchstaben bitte" << endl;
- Falsche_Eingabe_Anfang();
- }
- }
- int Falsche_Eingabe_Ende()
- {
- cin >> Auswahl;
- switch(Auswahl)
- {
- case('n')://wenn "c" in das textfeld eingegeben wurde
- Neustart();
- case('b'):
- return 0;//return 0 beendet das Programm sofort
- default:
- cout << "Falsche Eingabe!\n(N) oder (B) in Kleinbuchstaben bitte." << endl;
- Falsche_Eingabe_Ende();
- }
- }
ich weiß, der code ist sehr lang, wollte noch ein Spoiler oder so einfügen, ging aber nicht =(
&& Gehört zwar nicht zu meinen Dringentsten problemen, aber ich will ein icon für meine Anwendung erstellen, hab schon alles gemacht, aber der compiler sagt mir, ich müsse ein 3.00 format bild haben, ich hab aber anscheinend nur ein 2.x format.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Strichcode ()