Ich bin neu in stackoverflow, und auch etwas neu in der Programmierung, also bitte beachten Sie meine schlechte Formatierung des Codes. Ich habe zwei Probleme mit meinem Code.Was ist los mit meiner Do ... while Logik, und weiter Logik?
- Meine continue-Anweisung, die ich verwende, um die Schleife fortzusetzen, wenn der Spieler 'y' oder 'Y' eingibt, funktioniert nicht. Sie endet das Programm nach nur die Vermutung richtig bekommen, die mich führt zu:
2.My Zähler weiter geht vorbei 0, ohne anzuhalten, und ich kann einfach nicht meinen Fehler in der Logik des Programms sehen .
Ich kann die Probleme mit meiner Logik nicht sehen.
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
#include <random>
using namespace std;
int getNumber(); //random number prototype
double getScore(); //gets score
int chances = 7; //chances to guess with
int main()
{
int guess = 0,
random;
char retry = 'y'; //initialize retry to 'y'
cout << "This is a random number guessing game. " << "You will be guessing between 1-100."
<< "You have 7 chances. Good luck! \n \n" << endl;
random = getNumber(); //give the function a variable
do
{
cout << random << "\n" << "\n";
chances--;
cout << "Enter your guess: ";
cin >> guess;
if (guess == random)
{
cout << "You have won the game! " << "Your score was: " << getScore();
cout << "Would you like to retry? (Y or N): ";
cin >> retry;
if (retry == 'y' || retry == 'Y')
{
chances = 7;
guess = 0;
getNumber();
continue; //player can retry the game
}
else if (chances == 0)
{
cout << "You have no chances left. Retry? (Y or N): ";
cin >> retry;
if (retry == 'y' || retry == 'Y')
{
chances = 7;
guess = 0;
getNumber();
continue;
}
}
return 0;
}
else if (guess != random)
cout << "You got it wrong. \n" << "You have: " << chances << " chances left" << endl << endl;
else
cout << "Incorrect Input. Please type a number." << endl << endl;
} while (guess != random);
return 0;
}
int getNumber()
{
unsigned seed = time(0); //seed the random number
srand(seed);
int randNum = rand() % 10 + 1; //random number in the range of 1-10
return randNum;
}
Ich kümmere mich um Ihre schlechte Formatierung. Neu zu sein hindert Sie nicht daran, Zeit und Mühe zu investieren, um Ihren Code schön zu formatieren. Sie können eine beliebige Anzahl von bestehenden, erfolgreichen Fragen für Beispiele betrachten. Stack Overflow bietet eine hervorragende Live-Post-Vorschau, sodass Sie so viel Zeit wie nötig verbringen können, um den Post gut aussehen zu lassen. –
'if (retry == 'y' || 'Y')' das tut nicht, was du denkst es tut – JackVanier