4Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
314
314
EMPFEHLEN
-
Hey,
ich habe vorhin angefangen ein wenig über C++ zu lernen.
Folgendes Ratespiel habe ich bisher rausgebracht. (Nach dem Motto "Learning by doing" habe ich einfach mal losgelegt ;D)
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#include <iostream> using namespace std; int main() { int i; do { cout << "Rate eine Zahl zwischen 1 und 100" << endl; cin >> i; } while (i != 93); if (i = 93) { cout << "Du hast gewonnen !" << endl; } if (i > 100) { cout << "Du hast eine Zahl größer als 100 eingegeben -.-'" << endl; } }
Zu meinen Fragen :
1. Ich will bei einem Ratespiel natürlich nicht immer dieselbe Zahl benutzen. "93" habe ich jetzt einfach mal als Test benutzt. Es gibt sicherlich eine Möglichkeit Beim starten des Programmes eine neue Zahl zu generieren, oder ?
2. Die zweite "if" Zeile klappt nicht so ganz, warum ?
Ich hoffe, ich habe alle Forenregeln eingehalten.
Mfg
ComTen
-
05.10.11 07:39 #2
Moin und Willkommen hier bei tutorials.de

Das ist doch ganz einfach :
Deine while-Schleife läuft solange, bis die Zahl 93 eingegeben wird. Erst dann wird sie aufgrund der Abbruchbedingung verlassen!
Also kann i anschließend IMMER nur den Wert 93 haben (und NIE 100) .....
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hallo,
du kannst dir eine Zufallszahl generieren. Such' einfach mal nach der Funktion "rand()".
Davon abgesehen hast du einen Fehler in der 1. if-Abfrage (sie wird in deinem Fall immer TRUE ergeben):
Code :1 2 3 4 5 6 7 8
// falsch if (i = 93) ... // richtig if (i == 93) ... // besser if (93 == i) ...
-
Ok erstmal danke euch beiden.

Nachdem ich eure Posts gelesen habe, habe ich ein wenig geändert :
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include <iostream> using namespace std; int main() { int Zufallszahl; int i; Zufallszahl = (rand()%100); do { cout << "Rate eine Zahl zwischen 1 und 100" << endl; cin >> i; } if (i == Zufallszahl) { cout << "Du hast gewonnen !" << endl; } }
Wieder eine Frage :
Anscheinend klappt das bisher ja.
Doch ich will jetzt noch sowas einbauen wie z.B :
Code cpp:1 2 3 4
if (i < Zufallszahl) { cout << "Zu klein" << endl; }
Nach der while-Schleife kann ich dies ja anscheinend nicht tun.
Doch in der while-Schleife klappt's ja auch nicht. Wo muss ich das also reinpacken ?
-
05.10.11 14:57 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Bei der do .. while Schleife fehlt das while.
Du mußt es natürlich in die Schleife packen. Warum soll das nicht gehen?
Damit du nicht immer dieselbe Zufallszahl bei jedem Programmstart bekommst, solltest du folgendes zu Beginn der main ausführen:
Außerdem mußt du für die rand Funktion den Header cstdlib und für die time Funktion ctime "includen".Code cpp:1
srand(time(NULL)); rand();
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
05.10.11 15:00 #6Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Dank euerer Hilfe hab ich's jetzt hingekriegt

Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#include <iostream> #include <cstdlib> using namespace std; int main() { srand(time(NULL)); rand(); int Zufallszahl; int i; Zufallszahl = (rand()%100); do { cout << "Rate eine Zahl zwischen 1 und 100" << endl; cin >> i; if (i < Zufallszahl) { cout << "Zu klein" << endl; } if (i > Zufallszahl) { cout << "Zu gross" << endl; } } while (i != Zufallszahl); if (i == Zufallszahl) { cout << "Du hast gewonnen !" << endl; system ("PAUSE"); } }
Ist getestet und klappt. :>
Bin ein bisschen stolz drauf. :P
-
05.10.11 16:44 #8
Moin,
na prima
Ich würde es nur noch übersichtlicher formatieren - etwa so :
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#include <iostream> #include <cstdlib> using namespace std; int main() { srand(time(NULL)); rand(); int Zufallszahl; int i; Zufallszahl = (rand()%100); do { cout << "Rate eine Zahl zwischen 1 und 100" << endl; cin >> i; if (i < Zufallszahl) { cout << "Zu klein" << endl; } if (i > Zufallszahl) { cout << "Zu gross" << endl; } } while (i != Zufallszahl); if (i == Zufallszahl) { cout << "Du hast gewonnen !" << endl; system ("PAUSE"); } }
Dur kannst den Thread auf "erledigt" setzen, in dem Du auf den Haken unten links unter dem letzten Beitrag klickt (neben "+ Auf Thema antworten") !
Gruß
KlausGeändert von vfl_freak (05.10.11 um 16:47 Uhr)
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
@vfl_freak :
Hab ich bereits getan.
Hast du noch eine kleine Aufgabe, die in etwa meinem Leistungsstand entspricht. ?
-
05.10.11 16:49 #10
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Schön, dass es funktioniert.
Ein paar Anmerkungen noch:
Du hast #include <ctime> vergessen.
Du solltest deinen Code ordentlich einrücken. Verwende am besten einen Editor / IDE der das automatisch kann.
Man könnte statt den zwei aufeinanderfolgenden if's auch "if ... else if" verwenden, da immer nur eine Bedingung gleichzeitig wahr sein kann. Man muss also nicht immer beides prüfen, sondern die zweite Bedingung nur, falls die erste falsch war. Insofern wäre das eine kleine Optimierung.
Genauso nach der Schleife. Du wirst die Schleife nur verlassen wenn i == Zufallszahl ist. Das brauchst du also nicht nochmal prüfen.
Verwende für C++ Code doch die [cpp]...[/cpp] Tags.
Kannst ja mal spaßeshalber Strg+Z, Enter drücken.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
@deepthroat :
Das ctime kapier ich nicht ganz...ohne klappt es auch und mit merke ich keinen Unterschied. (Zahlen sind bei jedem Start verschieden, mit oder ohne)
Das mit if...if habe ich jetzt geändert und habe anstatt "if (i > Zufallszahl)" einfach "else" geschrieben.
Code cpp:1 2 3 4 5 6 7 8
if (i < Zufallszahl) { cout << "Zu klein" << endl; } else { cout << "Zu gross" << endl; }
Aber das unterste if muss ja dableiben, sonst kommt ja keine Nachricht, dass man gewonnen hat, oder ?
[cpp] hab ich jetzt auch hier verwendet. :P
Und Strg + Z macht doch nur Sachen rückgängig ?
-
05.10.11 20:54 #12
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Das ist allerdings nur Glück oder Zufall. Mit einem anderen Compiler funktioniert das dann evtl. nicht mehr.
Die time Funktion ist nunmal in ctime deklariert und wenn man diese Funktion benutzen will, dann muss man die entsprechende Headerdatei auch einbinden. Das gehört zum guten Ton bzw. ist guter Stil.
So ist es allerdings falsch. (Hast du das ausprobiert?
) Insgesamt gibt es nämlich 3 Möglichkeiten...
Warum probierst du das nicht einfach schnell aus?
In Word vielleicht.
Warum probierst du's nicht einfach aus?
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Brauche Eure Hilfe und eure Vorschläge
Von kirka im Forum PHPAntworten: 6Letzter Beitrag: 11.09.10, 12:01 -
Ratespiel
Von kautschuk im Forum Bildbearbeitung & IllustrationAntworten: 8Letzter Beitrag: 12.06.07, 16:53 -
LOGO vorschläge >>> würde mich freuen wenn ihr mir eure Vorschläge zeigen würdet...
Von aposch im Forum Creative LoungeAntworten: 6Letzter Beitrag: 14.09.06, 00:20 -
LOGO vorschläge >>> würde mich freuen wenn ihr mir eure Vorschläge zeigen würdet...
Von aposch im Forum PhotoshopAntworten: 0Letzter Beitrag: 13.09.06, 20:21 -
Ratespiel mit Rangliste
Von BIAsTeR im Forum JavaAntworten: 1Letzter Beitrag: 03.01.06, 09:33





Zitieren



Login






