C++中的随机猜测游戏

C++中的随机猜测游戏,c++,visual-c++,C++,Visual C++,我的任务是创建一个猜谜游戏,其中电脑猜我的数字,我猜电脑的数字。我已经把代码写好了,但不完整。我想创建一个菜单,让用户可以选择他想玩的游戏,而且我很难将这两个程序合并为一个,这样它们都可以运行。有人能帮我吗。第一场比赛打得不错,但从那以后我真的不知道自己在做什么 #include<iostream> #include<ctime> #include<cstdlib> using namespace std; int main() { const i

我的任务是创建一个猜谜游戏,其中电脑猜我的数字,我猜电脑的数字。我已经把代码写好了,但不完整。我想创建一个菜单,让用户可以选择他想玩的游戏,而且我很难将这两个程序合并为一个,这样它们都可以运行。有人能帮我吗。第一场比赛打得不错,但从那以后我真的不知道自己在做什么

#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{

    const int min = 1;
    const int max = 100;
    int num = 2 && 3 && 4;
    int prevMin = 0;
    int prevMax = 0;
    int tries = 0;
    int guess = 0;
    int userNum = 0;
    int userGuess = 0;
    int systemNum = 0;
    int systemGuess = 0;



    cout << "Welcome to the Guessing Game!" << endl;
    cout << "Enter a 2 to play Game 1 or a 3 to play Game 2. Or enter 4 to quit." << endl;
    cin >> num;

    if (num == 2)
    {
        cout << "Welcome to Game 1!" << endl;
        cout << "User, enter a random number between " << min << " and " << max << " : "; cin >> userNum;
    }


    srand(time(0));
    systemGuess = rand() % 100 + 1;

    do
    {
        cout << "System, guess the user's number between " << min << " and " << max << ": " << systemGuess << endl;
        cin.get();
        ++tries;
        if (systemGuess > max || systemGuess<min)
        {
            cout << "I said guess a number between " << min << " and " << max << " stupid." << endl;
        }

        if (systemGuess > userNum)
        {
            cout << "Too high. Guess lower." << endl;
            prevMax = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }

        else if (systemGuess < userNum)
        {
            cout << "Too low. Guess higher." << endl;
            prevMin = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }




    } while (systemGuess != userNum);

    cout << systemGuess << endl;
    cout << " I guessed it right! It took me " << tries << " guess(es). " << endl;




    srand(time(0));
    systemNum = rand()% 100 + 1;




    //Beginning of second game

    do
    {
        if (num == 3)
    {
        cout << "Welcome to Game 2!" << endl;
        cout << "User, try to guess the computer's number that's between " << min << " and " << max << " . " << endl;
    }


        cout << "Enter your guess." << endl;
        cin >> userGuess;
        tries++;

        if (userGuess > systemNum)
        {
            cout << "Too high. Guess lower." << endl;
            cin >> userGuess;
        }
        else if (userGuess < systemNum)
        {
            cout << "Too low. Guess higher." << endl;
            cin >> userGuess;
        }
        else
        {
            cout << "Correct! It took you long enough! Lol... " << endl;
            cin >> userGuess;
        }
        while (userGuess != systemNum);

    }







    system("pause");
    return 0;


}

将两个游戏设置为两个不同的函数,每个函数都有自己的局部变量,创建第三个函数,该函数是一个循环,在选择退出时提示游戏并中断,然后调用相应的函数,然后从main调用第三个函数。

如果…否则:

您的全部代码:

#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{

    const int min = 1;
    const int max = 100;
    int num = 2 && 3 && 4;
    int prevMin = 0;
    int prevMax = 0;
    int tries = 0;
    int guess = 0;
    int userNum = 0;
    int userGuess = 0;
    int systemNum = 0;
    int systemGuess = 0;
        srand(time(0));


    cout << "Welcome to the Guessing Game!" << endl;
    cout << "Enter a 2 to play Game 1 or a 3 to play Game 2. Or enter 4 to quit." << endl;
    cin >> num;

    if (num == 2)
    {
        cout << "Welcome to Game 1!" << endl;
        cout << "User, enter a random number between " << min << " and " << max << " : "; cin >> userNum;


    systemGuess = rand() % 100 + 1;

    do
    {
        cout << "System, guess the user's number between " << min << " and " << max << ": " << systemGuess << endl;
        cin.get();
        ++tries;
        if (systemGuess > max || systemGuess<min)
        {
            cout << "I said guess a number between " << min << " and " << max << " stupid." << endl;
        }

        if (systemGuess > userNum)
        {
            cout << "Too high. Guess lower." << endl;
            prevMax = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }

        else if (systemGuess < userNum)
        {
            cout << "Too low. Guess higher." << endl;
            prevMin = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }




    } while (systemGuess != userNum);

    cout << systemGuess << endl;
    cout << " I guessed it right! It took me " << tries << " guess(es). " << endl;
    }



    systemNum = rand()% 100 + 1;


//Beginning of second game

        if (num == 3)
    {
    do
    {

        cout << "Welcome to Game 2!" << endl;
        cout << "User, try to guess the computer's number that's between " << min << " and " << max << " . " << endl;



        cout << "Enter your guess." << endl;
        cin >> userGuess;
        tries++;

        if (userGuess > systemNum)
        {
            cout << "Too high. Guess lower." << endl;
            cin >> userGuess;
        }
        else if (userGuess < systemNum)
        {
            cout << "Too low. Guess higher." << endl;
            cin >> userGuess;
        }
        else
        {
            cout << "Correct! It took you long enough! Lol... " << endl;
            cin >> userGuess;
        }}
        while (userGuess != systemNum);


    }else if(num==4)return 0;    
else{
cout<<"Invalid choice!";
system("pause");
return 1;
}

//print highscores


    system("pause");
    return 0;

}

与答案无关,我更喜欢:输入2来玩游戏1,或输入3来玩游戏2。或者输入4退出。这样就不会让用户感到困惑了。好吧,我唯一真正想做的就是让真正的菜单工作起来。但是我不知道怎么做。你想要菜单,当用户输入2进入game1或3进入game2并在用户输入4或任何一个游戏结束后退出吗?是的,就是这样,当他们退出时,在他或她玩特定游戏的时候,展示最佳的得分猜测。我希望我能说我知道你在说什么,但我不能。这只是我第三周的代码编写,我只是在稳步尝试以我的一些同龄人的速度学习。他的意思是不要把所有的代码都塞进主代码中,而是将其分解成模块。我仍然有错误,程序只在第一个游戏中运行,菜单仍然不起作用。@JatoriGraves,我将发布整个代码。它应该是有用的。好吧,我需要每天练习编码来真正了解它。@JatoriGraves,耶!请尝试我答案中的代码,如果有帮助,请接受答案!这确实有帮助,但我仍然需要调试游戏2。它只允许我在显示用户之前猜两次,试着猜计算机的号码。。。。不过我会看看能不能弄明白的。
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{

    const int min = 1;
    const int max = 100;
    int num = 2 && 3 && 4;
    int prevMin = 0;
    int prevMax = 0;
    int tries = 0;
    int guess = 0;
    int userNum = 0;
    int userGuess = 0;
    int systemNum = 0;
    int systemGuess = 0;
        srand(time(0));


    cout << "Welcome to the Guessing Game!" << endl;
    cout << "Enter a 2 to play Game 1 or a 3 to play Game 2. Or enter 4 to quit." << endl;
    cin >> num;

    if (num == 2)
    {
        cout << "Welcome to Game 1!" << endl;
        cout << "User, enter a random number between " << min << " and " << max << " : "; cin >> userNum;


    systemGuess = rand() % 100 + 1;

    do
    {
        cout << "System, guess the user's number between " << min << " and " << max << ": " << systemGuess << endl;
        cin.get();
        ++tries;
        if (systemGuess > max || systemGuess<min)
        {
            cout << "I said guess a number between " << min << " and " << max << " stupid." << endl;
        }

        if (systemGuess > userNum)
        {
            cout << "Too high. Guess lower." << endl;
            prevMax = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }

        else if (systemGuess < userNum)
        {
            cout << "Too low. Guess higher." << endl;
            prevMin = systemGuess;

            systemGuess = rand() % (prevMax - prevMin) + prevMin;

            if (systemGuess == prevMin)
                systemGuess++;
        }




    } while (systemGuess != userNum);

    cout << systemGuess << endl;
    cout << " I guessed it right! It took me " << tries << " guess(es). " << endl;
    }



    systemNum = rand()% 100 + 1;


//Beginning of second game

        if (num == 3)
    {
    do
    {

        cout << "Welcome to Game 2!" << endl;
        cout << "User, try to guess the computer's number that's between " << min << " and " << max << " . " << endl;



        cout << "Enter your guess." << endl;
        cin >> userGuess;
        tries++;

        if (userGuess > systemNum)
        {
            cout << "Too high. Guess lower." << endl;
            cin >> userGuess;
        }
        else if (userGuess < systemNum)
        {
            cout << "Too low. Guess higher." << endl;
            cin >> userGuess;
        }
        else
        {
            cout << "Correct! It took you long enough! Lol... " << endl;
            cin >> userGuess;
        }}
        while (userGuess != systemNum);


    }else if(num==4)return 0;    
else{
cout<<"Invalid choice!";
system("pause");
return 1;
}

//print highscores


    system("pause");
    return 0;

}