ttatoni
Neues Mitglied
Hallo, ich habe ein kleines Zahlenraten Spiel in C++ programmiert. Jetzt habe ich hinzugefügt, dass der Benutzer auswählen kann wie groß das Spektrum der gesuchten Zahl sein soll. Es kommt aber immer zu dem Fehler:Ausnahmefehler bei 0x008031A8 in spiel++.exe: 0xC0000094: Integer division by zero.
Hier der Code
Hier der Code
C++:
#include <iostream>
#include <stdio.h>
#include <time.h>
using namespace std;
int MaxNumber;
int credits = 0;
char Menu() {
char input = ' ';
cout << "\n MENU\n\nSpielen\nVerlassen)\n\n";
cout << "Gib (P) ein um zu spielen und (Q) um das Spiel zu Verlassen\n";
cout << "Input: ";
cin >> input;
system("cls");
return input;
}
int GetUserGuess() {
int guess = 0;
cout << "Wie lautet dein Tipp?\n";
cin >> guess;
return guess;
}
bool ValidateUserGuess(int guess, int rightResult) {
if (guess == rightResult) {
cout << "Super! Dein Tipp war richtig! Die gesuchte Zahl ist " << rightResult << '!' << endl;
credits += 10;
cout << "Credits: " << credits << "\n\n";
return true;
} else if (guess < rightResult) {
cout << "Die gesuchte Zahl ist groesser als dein Tipp.\n";
return false;
} else if (guess > rightResult) {
cout << "Die gesuchte Zahl ist kleiner als dein Tipp.\n";
return false;
} else {
cout << "Eingabe nicht gueltig: " << guess << "\n";
return false;
}
}
void RunGame() {
int rightResult = rand() % MaxNumber;
int randomNumber = MaxNumber;
int guess = 0;
int tries = 0;
cout << "Gib hier ein wie gross das Spektrum der gesuchten Zahl sein soll.\nVon 1 bis: \n";
cin >> MaxNumber;
cout << "Die gesuchte Zahl ist zwischen 1 und " << MaxNumber + 1 << "(beide mit eingeschlossen)\n";
do {
guess = GetUserGuess();
tries++;
} while (!ValidateUserGuess(guess, randomNumber));
cout << "Du hast " << tries << " Versuche gebraucht.\n";
}
void RunMenu() {
while (true) {
char input = Menu();
if (input == 'P' || input == 'p') {
RunGame();
} else if (input == 'Q' || input == 'q') {
break;
} else {
cout << "Input " << input << " nicht bekannt. Bitte versuche es erneut \n";
}
}
}
int main() {
srand(time(NULL));
RunMenu();
cout << credits;
system("pause");
return 0;
}