Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

51

17.12.2013, 15:18

Alle wollen <limits>, kA wieso KeksX das auf <climits> ändern musste.
windows.h ist kein standard Header von daher geht das eigentlich gegen die Regeln, somit fällt dann auch Beep weg, kann aber per system() ersetzt werden.

Hier mal wieder ein kompilierender und Regel konformer Code:

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 0; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)
        {
            std::cin >> m_GuessedNumber;

            if (m_GuessedNumber == m_TargetNumber) m_NumberGuessed = true;
        }

        if(!m_NumberGuessed) delete_all_files();
    }
private:
    unsigned int m_TargetNumber;
    const std::string m_PlayerName;
    bool m_NumberGuessed;
    int m_GuessedNumber;
    int m_Tries;
};

int main(int argc, const char* argv[])
{
    std::cout << "Willkommen bei 'Fight For Your Data'!" << std::endl;
    //Beep(500, 1000);
    std::cout << "Du spielst um all deine Dateien!" << std::endl;
    //Beep(700, 1000);
    std::cout << "Der Dateidieb heißt " << argv[0] << " der fiese." << std::endl;
    std::cout << "Wie heißt 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();
}


Zitat von »"David"«

Ist "__posix" eigentlich korrekt?
Hmmm das war auf SO bei einer Antwort gelistet, ist jedoch nicht auf dieser Liste.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »eXpl0it3r« (17.12.2013, 15:24)


Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

52

17.12.2013, 17:26

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 1; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries) //m_Tries auf 1 gesetzt da man sonst 4 Versuche hätte
        {
            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;//
            }
        }

        if (!m_NumberGuessed) delete_all_files();
    }
private:
    unsigned int m_TargetNumber;
    const std::string m_PlayerName;
    bool m_NumberGuessed;
    int m_GuessedNumber;
    int m_Tries;
};

int main(int argc, const char* argv[])
{
    std::cout << "Willkommen bei 'Fight For Your Data'!" << std::endl;
    //Beep(500, 1000);
    std::cout << "Du spielst um all deine Dateien!" << std::endl;
    //Beep(700, 1000);
    std::cout << "Der Dateidieb heißt " << argv[0] << " der fiese." << std::endl;
    std::cout << "Wie heißt 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();
}

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

53

17.12.2013, 17:44

Änderungshinweis: PC spielt nun nicht fair.

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 1; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)
        {
            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 //Änderung1
            { delete_all_files(); } //Änderung2 (kann jemand einen Zeilenumbruch hinzufügen?)
        }

        //Änderung 3: If Abfrage entfernt
    }
private:
    unsigned int m_TargetNumber;
    const std::string m_PlayerName;
    bool m_NumberGuessed;
    int m_GuessedNumber;
    int m_Tries;
};

int main(int argc, const char* argv[])
{
    std::cout << "Willkommen bei 'Fight For Your Data'!" << std::endl;
    //Beep(500, 1000);
    std::cout << "Du spielst um all deine Dateien!" << std::endl;
    //Beep(700, 1000);
    std::cout << "Der Dateidieb heißt " << argv[0] << " der fiese." << std::endl;
    std::cout << "Wie heißt 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 »MitgliedXYZ« (17.12.2013, 17:55)


54

17.12.2013, 18:53

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 0; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)//War doch so richtig, da kleiner und nicht kleiner gleich
        {
            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
            {
                delete_all_files(); 
            } //Zeilenumbruch
        }
    }
private:
    unsigned int m_TargetNumber;
    const std::string m_PlayerName;
    bool m_NumberGuessed;
    int m_GuessedNumber;
    int m_Tries;
};

int main(int argc, const char* argv[])
{
    std::cout << "Willkommen bei 'Fight For Your Data'!" << std::endl;
    //Beep(500, 1000);
    std::cout << "Du spielst um all deine Dateien!" << std::endl;
    //Beep(700, 1000);
    std::cout << "Der Dateidieb heißt " << argv[0] << " der fiese." << std::endl;
    std::cout << "Wie heißt 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();
}

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

55

17.12.2013, 19:08

Alle wollen <limits>, kA wieso KeksX das auf <climits> ändern musste.



Hatte es seltsamerweise ja mit <limits> eingebaut. Glaube ich habe es zwischendurch in VS gehabt und da dann climits geschrieben :D. Mein Fehler!

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
        keep(); // Blödes Konsolenfenster  - haut immer ab!  Außerdem Beeps entfernt.
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 0; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)
        {
            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
            {
                delete_all_files(); 
            } 
        }
    }
private:
    unsigned int m_TargetNumber;
    const std::string m_PlayerName;
    bool m_NumberGuessed;
    int m_GuessedNumber;
    int m_Tries;
};

int main(int argc, const char* argv[])
{
    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ßt " << argv[0] << " der fiese." << std::endl; 
    std::cout << "Wie heißt 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();
}
WIP Website: kevinheese.de

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

56

17.12.2013, 20:40

@Michi_95: Wie erklärst du dir dann, dass ich immer 4 Versuche habe?

(Link)

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

57

17.12.2013, 20:59

Quellcode

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
        keep(); // Blödes Konsolenfenster  - haut immer ab!  Außerdem Beeps entfernt.
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    void RunLoop()
    {
        for (m_Tries = 0; m_Tries < MAX_TRIES && !m_NumberGuessed; ++m_Tries)
        {
            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)
            {
                 std::cout << "Der Dateidieb hatte Pech. Glück für dich!";   
            }
            else
            {
                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 // For "debugging" reasons ... Now u can safely implement delete_all_files
};

int main(int argc, const char* argv[])
{
    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ßt " << argv[0] << " der fiese." << std::endl; 
    std::cout << "Wie heißt 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();
}

58

17.12.2013, 22:26

Wie erklärst du dir dann, dass ich immer 4 Versuche habe?

Ist die letzte Eingabe eventuell nur wegen dem cin.get() in keep()? Bei mir funktioniert es wie es soll.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

59

17.12.2013, 22:46

Ja, das keep hat ein cin.get(); drin. Da muss also nochmal n Enter kommen, bevor das Programm schließt. Zur Verdeutlichung passe ich mal den Quellcode an:
@birdfreeyahoo: Du hast im Endeffekt mehr Zeilen eingefügt. Ist aber wohl ok denke ich, oder was sagen die anderen?

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cout << "Mit Enter beenden"; // Kontrollausgabe
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
        keep(); 
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    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)
            {
                 std::cout << "Der Dateidieb hatte Pech. Glück für dich!";   
            }
            else
            {
                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; // Hier fehlte ein Semikolon
};

int main(int argc, const char* argv[])
{
    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ßt " << argv[0] << " der fiese." << std::endl; 
    std::cout << "Wie heißt 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();
}
WIP Website: kevinheese.de

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

60

17.12.2013, 23:06

Oh ja sorry das hab ich übersehen :D

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
#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>

void keep()
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cout << "Mit Enter beenden";
    std::cin.get();
}

void delete_all_files()
{
    try
    {
#ifdef _WIN32
#elif __posix
#endif
    }
    catch (const std::exception& e)
    {
        std::cout << "Exception in delete_all_files" << std::endl;
        keep();
    }
}

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)
    {
        srand(time(NULL));
        m_TargetNumber = rand() % 20 + 1;
    }
    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)
            {
                std::cout << "Der Dateidieb hatte Pech. Glück für dich!";
            }
        }

        std::cout << "Der Dateidieb konnte mit deinen Dateien davonkommen!" << std::endl; //
        delete_all_files(); //Verschoben
    }
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 << "Willkommen bei 'Fight For Your Data'!" << std::endl;
    std::cout << "Du spielst um all deine Dateien!" << std::endl;
    std::cout << "Der Dateidieb heißt " << argv[0] << " der fiese." << std::endl;
    std::cout << "Wie heißt 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();
}

Werbeanzeige