如何在C ++中随机化输出

时间:2017-06-15 18:23:03

标签: c++ random

我在Mac OS Sierra上使用Eclipse 4.6.3。

所以我有这段代码:

int main() 
{
    int GameState = ROOM1;
    int iRoomCounter[4] = {0,0,0}; // Used to determine if a room has been visited.
    string choice;
    char Name[25];
    cout << "!!!Hello World!!!" << endl;
    cout << "Enter Your Name!" << endl;
    cin >> Name;
    cout << "Thank you " << Name << ". You will not be forgotten." << endl;

    while(GameState != DEATH)
    {
        switch(GameState)
        {
            case ROOM1:
            {
                if (iRoomCounter[0] == 0) 
                {
                    cout << "\n One day, " << Name << " was walking through a field and spotted a little Ejay." << endl;
                    cout << Name << " also spotted a cat. He wanted to pet both, but he could only pet one." << endl;
                    iRoomCounter[0] = 1;
                }
                cout << "\nWhich one will he pet?" << endl;
                cout << "Ejay" << endl;
                cout << "Cat" << endl;
                cout << "-> ";
                cin >> choice;

                if(choice == "Ejay" || choice == "ejay")
                {
                    cout << "He pet Ejay" << endl;
                }
            }
        }
    }
}

我想随机化某些输出,例如: 如果我选择“Ejay”,我想要么说“他宠物Ejay”或“Ejay逃跑了”。或者“Ejay死了。”我不知道该怎么做。有人会如此善意地在我的代码中实现一种方法吗?提前谢谢。

谢谢大家!

2 个答案:

答案 0 :(得分:0)

答案1:int randNum = rand() % 3创建一个随机数0-2,然后您可以使用它来编号以选择数组内的字符串。 EX:

string randString[3] = {"hi","Hello","Sup"};

答案2:您只需编译代码即可创建“应用程序”。从终端编译代码的常用方法是'G ++ filename.cc -o desiredname'

**编辑:如果您正在尝试使用游戏完成GUI,那么使用c ++非常具有挑战性。您可能最好不要研究其他语言或框架来使用。

答案 1 :(得分:-1)

这样做的方法是使用随机数生成器。最简单的一个,但不是最好的,是rand()。当然,有更好的随机数生成器,如std::mt19937,但我只是保持这个简单。

rand()将返回一个随机整数,您可以使用模(%)运算符将其缩小到一个小范围。

switch ( rand() % 3 )
{
    case 0:
        cout << "He pet Ejay" << endl;
        break;
    case 1:
        cout << "Ejay ran away." << endl;
        break;
    case 2:
        cout << "Ejay died." << endl;
        break;
    default:
        break;
}

对于第二个问题,请尝试在IDE上找到构建或编译按钮。我对Eclipse的界面并不太熟悉,但要弄清楚如何编写代码并不是很难。