Zahlenraten Hilfe C++ 

  • Ersteller Ersteller Strichcode
  • Erstellt am Erstellt am
S

Strichcode

Hey Leute, ich bin neu hier im Forum und kenne die Forenregel nicht so gu t:O
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


Code:
#include 
#include 
#include 

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  cout  cout  cout  cout  

int versuche = 0;


cout  cout  


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_Anfang();
}
}
void Versuche_10()
{

cout  cin >> limit;

random_number = (rand()%limit)+1;


//10 Versuche

int max_versuche = 10;

for(versuche = 1; versuche  {

if((versuche > 1) && number > random_number) 
{ cout  
} 
else if((versuche > 1) && number < random_number)
{ cout  
}

cout  //cout  cout  cin >> number;

if(random_number == number)
break;
}
Ende();
}
void Versuche_15()
{
//15 Versuche 
cout  cin >> limit;

random_number = (rand()%limit)+1;

int max_versuche2 = 15;



for(versuche = 1; versuche  {

if((versuche > 1) && number > random_number) 
cout  
else if((versuche > 1) && number < random_number)
cout  
cout  //cout  cout  cin >> number;

if(random_number == number)
break;
}

Ende();
}
void Versuche_20()
{
cout  cin >> limit;

random_number = (rand()%limit)+1;


int max_versuche3 = 20;

for(versuche = 1; versuche  {

if((versuche > 1) && number > random_number) 
cout  
else if((versuche > 1) && number < random_number)
cout  
cout  //cout  cout  cin >> number;

if(random_number == number)
break;
}
Ende();
}
void Versuche_Unendlich()
{


// Unendlich Versuche
cout  cin >> limit;


random_number = (rand()%limit)+1;
do
{
if((versuche > 0) && number > random_number)
{
cout  }
else if((versuche >0) && number < random_number)
{
cout  }
versuche++;
cout  //cout  cout  cin >> number;
}while(number != random_number);

Ende();
}
void Versuche_Eigene()
{

cout  cin >> versuche_eigene;


cout  cin >> limit;

random_number = (rand()%limit)+1;



for(versuche = 1; versuche  {

if((versuche > 1) && number > random_number) 
cout  
else if((versuche > 1) && number < random_number)
cout  
cout  //cout  cout  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 
cout 

cin >> Auswahl;

switch(Auswahl)
{
case('n'):
Neustart();

case('b'):
exit(0);
default:
cout  Falsche_Eingabe_Ende(); 
} 
}else //wenn du's nicht geshafft hast

{
system("cls");

cout  
cout 


cin >> Auswahl;

switch(Auswahl)
{
case('n')://wenn "c" in das textfeld eingegeben wurde
Neustart();

case('b'):
exit(0);

default:
cout  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_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_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.
 
Zuletzt bearbeitet:
Der Code ist so lang, weil viel Redundanz vorkommt. Wenn Du einen Codeblock gleich oder ähnlich mehr als einmal schreiben musst, ist eine Auslagerung meist sinvoll.

Zu Deinem Fehler: Ich sehe keine Eingabeprüfung. Der Code erwartet eine Ganzzahl, lässt aber jede Eingabe zu.
 
Zurück
Oben Unten