1
0
This commit is contained in:
Captain ALM 2022-11-25 12:24:19 +00:00
parent 57864ba51d
commit 672289a9cf
Signed by: alfred
GPG Key ID: 4E4ADD02609997B1

125
main.cpp
View File

@ -2,100 +2,41 @@
#include <random>
#include <chrono>
using string = std::string;
void ignoreTillLineEnd();
string promptfs(string);
int promptfi(string);
string guessRank(int);
class A {
public:
A() {
std::cout << "Class A Created\n";
}
~A() {
std::cout << "Class A Destroyed\n";
}
};
class B {
public:
B() {
std::cout << "Class B Created\n";
}
~B() {
std::cout << "Class B Destroyed\n";
}
};
class C : public A {
B b{};
public:
C() {
std::cout << "Class C Created\n";
}
~C() {
std::cout << "Class C Destroyed\n";
}
};
int main()
{
std::mt19937 rand {std::random_device{}()};
std::uniform_int_distribution 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";
}
ent = promptfi("Enter your guess:");
}
while (num != ent);
std::cout << "Well done " << name << ", you guessed correctly!\n";
std::cout << "You took " << guesses << " guesses, rank " << guessRank(guesses) << " .\n";
A v{};
B w{};
C x{};
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";
}
}