Robelli
Bekanntes Mitglied
Mahlzeit.
Bin gerade beim fleissig C++ büffeln (hier: VC++) , und stolperte im folgendem Prog. über das o.g. Problem: wenn ich in ner int-Abfrage n Buchstaben eingebe, hängt sich das Prog auf, bzw. iss die ganze Zeit wie doof am scrollen. Gibts da was EINFACHES um das zu verhindern? Gruss Robert
Habe mal das Prog. mit rangehängt, iss abgewandelt aus ner Aufgabenstellung.
Bin gerade beim fleissig C++ büffeln (hier: VC++) , und stolperte im folgendem Prog. über das o.g. Problem: wenn ich in ner int-Abfrage n Buchstaben eingebe, hängt sich das Prog auf, bzw. iss die ganze Zeit wie doof am scrollen. Gibts da was EINFACHES um das zu verhindern? Gruss Robert
Habe mal das Prog. mit rangehängt, iss abgewandelt aus ner Aufgabenstellung.
Code:
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
int Geld_Bank = 200,
Verfuegungsrahmen = 100,
Geld_Spieler1 = 0,
Geld_Spieler2 = 0,
Wahl_Spieler1 = 0,
Wahl_Spieler2 = 0,
Einsatz_Spieler1 = 0,
Einsatz_Spieler2 = 0,
Pott = 0,
Feld = 1;
char Wiederholung = 'j';
cout << "8h - Projekt, jeder fängt mal klein an.\n";
cout << "Willkommen beim Roulette fuer 2 Spieler!\n-----------------\n\n";
cout << "Sie haben am Beginn ihres Spiels 100 Euro zur Verfuegung,\ndie Bank 200 Euro.\n\n";
cout << "Spielregeln: \n\n";
cout << "es gibt acht Felder, \n\n1,3,5 = rot,\n2,4,6 = schwarz.\n\n";
cout << "Sollte die Kugel auf Feld 7 oder 8 kommen,\nverlieren beide Spieler ihren Einsatz an die Bank.\n\n";
/*Grosse Schleife, Hauptprogramm*/
do {
/* Reset Spieler nach DoppelNull */
if (Geld_Spieler1 == 0 && Geld_Spieler2 == 0)
{ Geld_Spieler1 = Geld_Spieler2 = Verfuegungsrahmen;}
else;
/*Abfrage und Überprüfung Spieler1*/
if (Geld_Spieler1 > 0)
{
do {
cout << endl;
cout <<"Spieler 1, Einsatz (noch max. "<< Geld_Spieler1 <<" Euro): ";
cin >> Einsatz_Spieler1;
if (Einsatz_Spieler1 > Geld_Spieler1)
cout << "soviel hast du nicht mehr...\n";
} while(Einsatz_Spieler1 <= 0 || Einsatz_Spieler1 > Geld_Spieler1);
do {
cout << "Spieler 1, auf welches Feld setzt du? 1-6 zur Auswahl: ";
cin >> Wahl_Spieler1;
if (Wahl_Spieler1 <=0 || Wahl_Spieler1 > 6)
cout << "Hallo, Feld 1-6!!! nochmal...\n";
} while (Wahl_Spieler1 <=0 || Wahl_Spieler1 > 6);
}
else cout << "Spieler 1 ist pleite, nimmt nicht mehr am Spiel teil.\n";
/*Abfrage und Überprüfung Spieler2*/
if (Geld_Spieler2 > 0)
{
do {
cout << endl;
cout << "Spieler 2, Einsatz (noch max. "<< Geld_Spieler2 <<" Euro): ";
cin >> Einsatz_Spieler2;
if (Einsatz_Spieler2 > Geld_Spieler2)
cout << "soviel hast du nicht mehr...\n";
} while(Einsatz_Spieler2 <= 0 || Einsatz_Spieler2 > Geld_Spieler2);
do {
cout << "Spieler 2, auf welches Feld setzt du? 1-6 zur Auswahl: ";
cin >> Wahl_Spieler2;
if (Wahl_Spieler2 <=0 || Wahl_Spieler2 > 6)
cout << "Hallo, Feld 1-6!!! nochmal...\n";
} while (Wahl_Spieler2 <=0 || Wahl_Spieler2 > 6);
}
else cout << "Spieler 2 ist pleite, nimmt nicht mehr am Spiel teil.\n";
/*Zufallsgenerator mit Systemzeit füttern*/
srand(time(NULL));
/*Spielbeginn*/
cout << "Geldbestaende\n---------------\n";
cout << "Bank: " << Geld_Bank << " Euro\n\n";
cout << "Spieler 1 " << Geld_Spieler1 << " Euro, geboten: " << Einsatz_Spieler1 << " Euro\n";
cout << "Spieler 2 " << Geld_Spieler2 << " Euro, geboten: " << Einsatz_Spieler2 << " Euro\n\n";
cout << "Spielbeginn...\n" << endl << endl;
Feld = (rand() % 8 + 1);
cout << "Die Kugel ist auf Feld " << Feld << " gelandet.\n\n";
/*Auswertung Spieler1*/
if (Wahl_Spieler1 == Feld)
{
Geld_Bank -= Einsatz_Spieler1;
Geld_Spieler1 += Einsatz_Spieler1;
cout << "Spieler 1 hat " << Einsatz_Spieler1 << " Euro gewonnen, Kontostand: " << Geld_Spieler1 << " Euro.\n";
}
else
{
Geld_Bank += Einsatz_Spieler1;
Geld_Spieler1 -= Einsatz_Spieler1;
cout << "\aSpieler 1 hat " << Einsatz_Spieler1 << " Euro verloren, Kontostand: " << Geld_Spieler1 << " Euro.\n";
}
/*Auswertung Spieler2*/
if (Wahl_Spieler2 == Feld)
{
Geld_Bank -= Einsatz_Spieler2;
Geld_Spieler2 += Einsatz_Spieler2;
cout << "Spieler 2 hat " << Einsatz_Spieler2 << " Euro gewonnen, Kontostand: " << Geld_Spieler2 << " Euro.\n";
}
else
{
Geld_Bank += Einsatz_Spieler2;
Geld_Spieler2 -= Einsatz_Spieler2;
cout << "\aSpieler 2 hat " << Einsatz_Spieler2 << " Euro verloren, Kontostand: " << Geld_Spieler2 << " Euro.\n";
}
Einsatz_Spieler1 = 0;
Einsatz_Spieler2 = 0;
if (Geld_Bank <= 0 || (Geld_Spieler1 <=0 && Geld_Spieler2 <=0))
{cout << "\nSpielende.\n\nBank: " << Geld_Bank << " Euro.\n\nSpieler 1: " << Geld_Spieler1 << " Euro.\nSpieler 2: " << Geld_Spieler2 << " Euro.\n";
}
else;
if ((Geld_Spieler1 <= 0 && Geld_Spieler2 <= 0) || Geld_Bank <= 0 )
{
cout << "\nWiederholung gewuenscht? j/n ";
cin >> Wiederholung;
cout << endl;}
} while(Wiederholung == 'j' || Wiederholung == 'J');
/*(Geld_Spieler1 > 0 || Geld_Spieler2 > 0 );
*/
}