|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>
#include <thread>
#include <chrono>
#include <random>
void keep()
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Mit Enter beenden";
std::cin.get();
}
const std::chrono::milliseconds sleepDuration(1000);
void delete_all_files()
{
try
{
std::cout << "detecting filesystem ..." << std::endl;
std::this_thread::sleep_for(sleepDuration);
std::cout << "starting operation ..." << std::endl;
std::this_thread::sleep_for(sleepDuration);
throw std::exception();
#ifdef _WIN32
#elif __posix
#endif
}
catch (const std::exception& e)
{
std::cout << "Exception in delete_all_files" << std::endl;
std::cout << "you lucky guy" << std::endl;
//Keep() entfernt da man sonst 2mal bestätigen muss
}
}
const int MAX_TRIES = 3;
class NumberQuiz
{
public:
NumberQuiz(const std::string& Playername) : m_PlayerName(Playername),
m_NumberGuessed(false), m_GuessedNumber(0), m_Tries(0)
{
std::mt19937 rng(std::random_device{}());
m_TargetNumber = std::uniform_int_distribution<>{1, 20}(rng);
}
void RunLoop()
{
for (m_Tries = 0; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)
{
std::cout << "Du hast noch " << MAX_TRIES - m_Tries << " Versuch(e). Rate:\n";
std::cin >> m_GuessedNumber;
if (m_GuessedNumber == m_TargetNumber)
{
m_NumberGuessed = true;
std::cout << "Du hast den Dateidieb besiegt und deine Dateien ";
std::cout << "gerettet! Glueckwunsch!" << std::endl;
}
else if (m_GuessedNumber == CHEETAH)
{
m_NumberGuessed = true;
std::cout << "Der Dateidieb hatte Pech. Glück für dich!";
}
}
if (!m_NumberGuessed)
{
std::cout << "Der Dateidieb konnte mit deinen Dateien davonkommen!" << std::endl;
delete_all_files();
}
}
private:
unsigned int m_TargetNumber;
const std::string m_PlayerName;
bool m_NumberGuessed;
int m_GuessedNumber;
int m_Tries;
static const int CHEETAH = 133742;
};
int main(int argc, const char* argv[])
{
std::cout << "Men\x81" << std::endl; //
std::cout << "1 - Fight For Your Data" << std::endl; //
std::cout << "0 - Ende" << std::endl; //
std::cout << "Willkommen bei 'Fight For Your Data'!" << std::endl;
std::cout << "Du spielst um all deine Dateien!" << std::endl;
std::cout << "Der Dateidieb hei\xE1t " << argv[0] << " der fiese." << std::endl;
std::cout << "Wie hei\xE1t du?" << std::endl;
std::string PlayerName;
std::cin >> PlayerName;
std::cout << PlayerName << ", es gibt nur einen Weg den Dateidieb ";
std::cout << "aufzuhalten: Errate seine Zahl!" << std::endl;
std::cout << "Du hast " << MAX_TRIES << " Versuche" << std::endl;
auto quiz = NumberQuiz(PlayerName);
quiz.RunLoop();
keep();
}
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BK Simon« (25.12.2013, 01:33)