Hallo,
ich habe mal wieder mit c++ angefangen und habe aus dem stehgreif angefangen ein kleines zahlenraten zu programmieren. was mich überrascht ich habe es innerhalb eines abends geschaft...
das einziege ist, dass ich ein kleinen "schönheitsfehler" hab, aber zuerst der code:
so mein problem ist, dass ich nicht genau wusste wie ich das menü immer wieder aufrufen lassen kann wenn man die schwierigkeit geändert hat, so hab ich einfach eine rekursion gestartet (Zeile 39).
Und genau hier liegt das problem (denke ich), denn wenn ich die schwierigkeit ändere und dann ein spiel erfolgreich gemacht hab und 'n' eingebe, damit das programm beendet wird, wird aber wieder das menü angezeigt.
jetzt weiß ich nicht was ich dagegen machen soll. ich hoffe auf antwort.
mfg zane 2007
ich habe mal wieder mit c++ angefangen und habe aus dem stehgreif angefangen ein kleines zahlenraten zu programmieren. was mich überrascht ich habe es innerhalb eines abends geschaft...
das einziege ist, dass ich ein kleinen "schönheitsfehler" hab, aber zuerst der code:
Code:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void start();
void mode();
int grenze = 100;
int menü ()
{
system("cls");
int Wahl;
cout << "###########ZAHLENRATEN##########" << endl
<< "################################" << endl
<< "(1)###########Start#############" << endl
<< "(2)#######Schwierigkeit#########" << endl
<< "(3)##########Beenden############" << endl;
cin >> Wahl;
return Wahl;
}
int main ()
{
switch (menü ())
{
case 1:
start();
break;
case 2:
mode();
main();
break;
case 3:
exit(0);
break;
default: cout << "Falsche Eingabe!";
}
}
void start()
{
system("cls");
int x, og, i=0;
char w;
srand((unsigned) time(0));
og = (rand()%grenze);
system("cls");
cout << "Raten sie los!!\n";
do
{
i++;
cin >> x;
if (x < og) cout<< "Die Zahl ist zu klein" << endl;
if (x > og) cout << "Die Zahl ist zu gross" << endl;
} while (x != og);
cout << "Gratuliere sie haben die Zahl erraten\n"
<< "Sie haben "<<i<<"´Versuche gebraucht!\n"
<< "Nochmal Spielen? (y/n)\n";
cin >> w;
if (w == 'y' || 'Y') main();
else exit(0);
}
void mode()
{
system("cls");
cout <<"in welchem Bereich soll die zu erratende zahl leigen?"<< endl
<<"Bitte die Obergrenze eingeben:" << endl;
cin >> grenze;
}
Und genau hier liegt das problem (denke ich), denn wenn ich die schwierigkeit ändere und dann ein spiel erfolgreich gemacht hab und 'n' eingebe, damit das programm beendet wird, wird aber wieder das menü angezeigt.
jetzt weiß ich nicht was ich dagegen machen soll. ich hoffe auf antwort.
mfg zane 2007