Compare commits
3 Commits
78acaf3290
...
18c5f972c2
Author | SHA1 | Date | |
---|---|---|---|
18c5f972c2 | |||
a7efeab624 | |||
3d2827578e |
115
main.cpp
115
main.cpp
@ -1,101 +1,30 @@
|
||||
#include <iostream>
|
||||
#include <random>
|
||||
#include <chrono>
|
||||
|
||||
using string = std::string;
|
||||
void ignoreTillLineEnd();
|
||||
string promptfs(string);
|
||||
int promptfi(string);
|
||||
string guessRank(int);
|
||||
#include <cstdlib>
|
||||
#include <ctime>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::mt19937 rand {std::random_device{}()};
|
||||
std::uniform_int_distribution<int> clamp {1, 100};
|
||||
string name {promptfs("Enter your name:")};
|
||||
std::cout << "Hello " << name << ", welcome to guess the number.\n";
|
||||
int guesses {};
|
||||
int num {clamp(rand)}, ent {};
|
||||
do {
|
||||
if (guesses++ > 0) {
|
||||
if (ent > num)
|
||||
std::cout << "You Guessed Too High!\n";
|
||||
else
|
||||
std::cout << "You Guessed Too Low!\n";
|
||||
using std::cout;
|
||||
using std::cin;
|
||||
srand(time(nullptr));
|
||||
int gcount{ 1 };
|
||||
int n { 20 };
|
||||
int secret { rand()%n + 1 };
|
||||
cout << "Guess a number between 1 and " << n << ": ";
|
||||
int guess;
|
||||
cin >> guess;
|
||||
while (guess != secret)
|
||||
{
|
||||
if (guess > secret) {
|
||||
cout << "Number too big ; ";
|
||||
} else {
|
||||
cout << "Number too small ; ";
|
||||
}
|
||||
ent = promptfi("Enter your guess:");
|
||||
gcount++;
|
||||
cout << "Guess again: ";
|
||||
cin >> guess;
|
||||
}
|
||||
while (num != ent);
|
||||
std::cout << "Well done " << name << ", you guessed correctly!\n";
|
||||
std::cout << "You took " << guesses << " guesses, rank " << guessRank(guesses) << " .\n";
|
||||
cout << "Correct!\n";
|
||||
cout << "Took " << gcount << " tries.\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ignoreTillLineEnd() {
|
||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||
}
|
||||
|
||||
string promptfs(string msg) {
|
||||
bool once {};
|
||||
string toret {};
|
||||
do {
|
||||
if (once) {
|
||||
std::cin.clear();
|
||||
ignoreTillLineEnd();
|
||||
std::cout << "Input Failure!\n";
|
||||
}
|
||||
std::cout << msg << "\n";
|
||||
std::cin >> toret;
|
||||
once = true;
|
||||
}
|
||||
while (std::cin.fail());
|
||||
ignoreTillLineEnd();
|
||||
return toret;
|
||||
}
|
||||
|
||||
int promptfi(string msg) {
|
||||
bool once {};
|
||||
int toret {};
|
||||
do {
|
||||
if (once) {
|
||||
std::cin.clear();
|
||||
ignoreTillLineEnd();
|
||||
std::cout << "Input Failure!\n";
|
||||
}
|
||||
std::cout << msg << "\n";
|
||||
std::cin >> toret;
|
||||
once = true;
|
||||
}
|
||||
while (std::cin.fail());
|
||||
ignoreTillLineEnd();
|
||||
return toret;
|
||||
}
|
||||
|
||||
string guessRank(int g) {
|
||||
switch (g) {
|
||||
case 0:
|
||||
return "U";
|
||||
case 1:
|
||||
return "A^";
|
||||
case 2:
|
||||
return "A*";
|
||||
case 3:
|
||||
return "A";
|
||||
case 4:
|
||||
case 5:
|
||||
return "B";
|
||||
case 6:
|
||||
case 7:
|
||||
return "C";
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
return "D";
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return "E";
|
||||
default:
|
||||
return "F";
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user