Hallo,
ich habe mich mal an C++ gewagt habe mich an ein erstes Spiel gecodet.
Es klappt auch fast alles, aber mir fällt folgendes auf.
7 soll die Zahl sein, bei der die Meldung "Richtig" erscheinen soll.
NUR (!) bei der 7.
Wenn ich allerdings eine Zahl > 7 eingebe und darauffolgend eine Zahl < 7 eingebe, kommt trotzdem die "Richtig" Meldung, was nicht sein sollte/dürfte.
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Hallo! "; //Begrüßung Anfang
cout << "Ich will mit dir ein Spiel spielen." << endl;
cout << "Ich denke mir eine Zahl zwischen 1 und 10. " << endl;
cout << "Du musst herauszufinden, welche Zahl ich mir gedacht habe." << endl;
cout << "Los geht's! Du hast 11 Versuche! *grins*" << endl; //Begrüßung Ende
cout << "" << endl; //Leere Zeile
cout << "(c) by Andreas Schmidt" << endl;
cout << "" << endl; //Leere Zeile
int zahl = 7;
cout << "Welche Zahl habe ich mir gedacht? ";
cin >> zahl;
while(zahl < 7) //zahl ungleich 7
{
cout << "" << endl; //leere zeile
cout << "Das ist leider nicht richtig. Meine Zahl ist gr\224\341er. " << endl; //meldung
cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
cin >> zahl; //neue zahl
}
while(zahl > 7) //zahl ungleich 7
{
cout << "" << endl; //leere zeile
cout << "Das ist leider nicht richtig. Meine Zahl ist kleiner. " << endl; //meldung
cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
cin >> zahl; //neue zahl
}
if(zahl == 7); //zahl gleich 7
{
cout << "" << endl; //leere zeile
cout << "Richtig! " << endl; //lob
cout << "" << endl; //leere zeile
system("PAUSE"); //schließen
return EXIT_SUCCESS;
}
}
Bei diesem Code hält es sich bisschen länger.
Ich gebe eine Zahl < 7 ein, dann eine Zahl > 7 und dann nochmal eine Zahl < 7.
Dann erscheint trotzdem die "Richtig" Meldung.
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Hallo! "; //Begrüßung Anfang
cout << "Ich will mit dir ein Spiel spielen." << endl;
cout << "Ich denke mir eine Zahl zwischen 1 und 10. " << endl;
cout << "Du musst herauszufinden, welche Zahl ich mir gedacht habe." << endl;
cout << "Los geht's! Du hast 11 Versuche! *grins*" << endl; //Begrüßung Ende
cout << "" << endl; //Leere Zeile
cout << "(c) by Andreas Schmidt" << endl;
cout << "" << endl; //Leere Zeile
int zahl = 7;
cout << "Welche Zahl habe ich mir gedacht? ";
cin >> zahl;
do //zahl ungleich 7
{
cout << "" << endl; //leere zeile
cout << "Das ist leider nicht richtig. Meine Zahl ist gr\224\341er. " << endl; //meldung
cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
cin >> zahl; //neue zahl
} while(zahl < 7);
do //zahl ungleich 7
{
cout << "" << endl; //leere zeile
cout << "Das ist leider nicht richtig. Meine Zahl ist kleiner. " << endl; //meldung
cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
cin >> zahl; //neue zahl
} while(zahl > 7);
if(zahl == 7); //zahl gleich 7
{
cout << "" << endl; //leere zeile
cout << "Richtig! " << endl; //lob
cout << "" << endl; //leere zeile
system("PAUSE"); //schließen
return EXIT_SUCCESS;
}
}
Weiß jemand was ich falsch mache und wie ich es ausbessern kann?
mfg
Underkane
//Edit:
Wenn ich 7 gleich am Anfang eingebe, bekomme ich trotzdem eine "Falsch" Meldung.
Und ich wüsste gerne, wie ich eine Zahl zwischen 1 und 10 automatisch (zufällig) generieren lasse, damit sie sich jedes mal ändert.