C++ を学習していますが、理解できない問題があります。X 個の文字を入力すると、現在の文字数では「失敗しました」というメッセージが X 回表示されます。
スクリーンショット、
ここに私のコードがあります、
#include <iostream>
#include <stdlib.h>
#include <string>
#include <time.h>
#include <ctype.h>
using namespace std;
int generateNumber()
{
int randomNumber;
srand(time(0));
randomNumber = rand() % 100 + 1;
return randomNumber;
}
int main()
{
// Predefine vars
int lifes = 5;
int attempts = 0;
int randomNumber = generateNumber();
int gameStarted = 0;
int gussedNumber;
int score = 0;
string username;
cout << "--------------------------------" << endl;
cout << "------- GUESS THE NUMBER -------" << endl;
cout << "---------- VERSION 1.0 ---------" << endl;
cout << "--------------------------------" << endl << endl;
while(gameStarted == 0)
{
cout << "Enter your username before we get started" << endl;
cin >> username;
gameStarted = 1;
system("cls");
}
if(gameStarted == 1)
{
cout << "Welcome, " << username << "!" << endl;
cout << "Guess a number between 1 - 100" << endl << endl;
while(attempts <= lifes)
{
// If you dont have any more lifes left
if(lifes == 0)
{
system("CLS");
cout << "Game Over" << endl;
cout << "Lets try again." << endl;
cout << "Guess a number between 1 - 100" << endl << endl;
lifes = 5;
randomNumber = generateNumber();
} else {
cin >> gussedNumber;
if(cin)
{
if(gussedNumber == randomNumber)
{
// Correct Number
system("CLS");
cout << "ConGratz Bro, you hit the correct number!" << endl;
cout << "Lets try again. You now have 5 lifes left." << endl;
lifes = 5;
score = score + 1;
// Generate a new random number
randomNumber = generateNumber();
} else {
// Wrong Number
lifes = lifes - 1;
cout << "Wrong Number." << endl;
cout << "Number of lifes left: " << lifes << endl << endl;
}
} else {
cin.clear();
cin.ignore();
cout << "That was not a number!" << endl;
}
}
}
}
cout << randomNumber << endl;
return 0;
}
学びながらやっている簡単なプログラムです。