2017-06-15 58 views
-1

我在Mac OS Sierra上使用Eclipse 4.6.3。如何隨機化C++中的輸出

所以我有這樣的代碼:

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; 
       } 
      } 
     } 
    } 
} 

我有兩個問題。如果你只回答一個問題,那很好。但我想有人回答另一個問題。

  1. 我想某些隨機的輸出,例如: 如果讓我選擇「EJAY」,我想它要麼說「他EJAY寵物」或「跑EJAY離開。」或「Ejay死了」。我不知道該怎麼做。有人會在我的代碼中實現這種方式嗎?先謝謝你。

  2. 我一直在努力弄清楚如何將我的代碼導出到應用程序中。我研究過,沒有找到任何東西。我在Mac上使用Eclipse,這可能是原因之一。有人會告訴我該怎麼做嗎?

謝謝大家!

+1

***我有兩個問題。如果你只回答一個問題,那很好。但是我希望有人回答其他問題。***通常,每個問題的StackOverflow是1個問題,特別是當主題完全不同時。 – drescherjm

+0

***我一直在努力弄清楚如何將我的代碼導出到應用程序中。***我不知道這個問題是什麼意思。我的意思是你的代碼看起來像一個應用你想爲你的應用程序創建一個安裝程序嗎? – drescherjm

+1

你可能會想過它。您可以使用隨機數字幫助您在字符串A或字符串B之間進行選擇,然後將其用作響應。 – gavsta707

回答

-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的界面不太熟悉,但要弄清楚如何編譯代碼並不難。

+0

非常感謝@Xander Kyle Puckett,非常感謝! – Ejay

0

回答1:int randNum = rand() % 3創建一個隨機數字0-2,然後可以用它來選擇一個數組中的字符串。 EX:

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

回答2:您需要簡單編譯您的代碼以創建「應用程序」。從終端編譯代碼的常見方法是'G ++ filename.cc -o desiredname'

**編輯:如果你正在嘗試用你的遊戲來完成一個GUI,這對於C++來說是非常具有挑戰性的。研究其他語言或框架可能會更好。