2010-10-23 62 views
2

我正在開發一款老虎機遊戲。玩家插入金錢並打賭。遊戲的目標是儘可能多的獲得同一符號的行,列和對角線。在上面的例子中,當上下行有相同的符號時,獲得利潤,部分是2行。根據具有相同符號的用戶得到支付所帶來的利潤系統的行數如下:比較二維數組結果的問題!

  • 一個系列提供了2 *賭注
  • 兩行給予3 *賭注
  • 三排給4 *賭注
  • 四行給5條*賭注
  • 五代線給出7 *賭注
  • 完全公平的競爭環境給10 *賭注

我不知道如何解決與支付這個問題?我可以使用哪些代碼?我應該使用for循環嗎?我是新的C++,所以我遇到了麻煩。我在這個遊戲上花了很多時間,但我無法解決這個問題。請幫幫我! 這裏是我現在的代碼的一小部分:我只是想比較結果。

srand(time(0)); 
char game[3][3] = {{'O','X','A'}, {'X','A','X'}, {'A','O','O'}}; 

for (int i = 0; i < 3; ++i) 
{ 
int r = rand() % 3; 
cout << " " <<game[r][0] << " | " << game[r][1] << " | " << game[r][2] << "\n"; 
cout << "___|___|___\n"; 
} 


//......compare the result of the random symbols. ???? 
+0

如果這是作業,你需要標記它'家庭作業' – Xorlev 2010-10-23 16:05:07

+0

這不是作業。我只是想學習C++ – Atb 2010-10-23 16:08:13

+0

停止改變你的問題。一次提出一個問題。當你得到一個合適的答案時,接受它。不要改變這個問題。這個問題最初是關於如何隨機化一個角色。這就是Twig和我回答的問題。現在你已經刪除了這部分問題,我們的答案甚至不再適用。儘量縮小你的問題範圍。我在這裏看到至少三個不同的問題,他們應該彼此分開。一旦它(或其中的一部分)被回答,就不要修改問題。 – 2010-10-23 22:37:40

回答

3

您在字母'A','O'和'X'之間進行選擇,對不對?

#include <algorithm> 

char randomSymbol() 
{ 
    char symbol = rand() % 3 + 'A'; 
    if(symbol == 'B') symbol = 'O'; 
    else if(symbol == 'C') symbol = 'X'; 
    return symbol; 
} 

void populateSlotField(char field[3][3]) 
{ 
    // pass your array as an argument to this function 
    // note that 9 is because you said your slot field was 3x3 
    // for a different sized field, adjust accordingly 
    std::generate(field[0], field[0] + 9, randomSymbol); 
} 
+0

謝謝。但是,我可以使用這個代碼與二維數組?那我該怎麼辦? – Atb 2010-10-23 11:33:49

+0

@Nelly - 查看更新回答 – 2010-10-23 11:54:31

+0

謝謝。如果我想將該字段放在屏幕上?我應該這樣編碼:cout << field [0] [0] << field [0] [1] << field [0] [2] <<「\ n」; – Atb 2010-10-23 12:59:01

0

您可以通過使用一個數組做到這一點,而不是

#include <iostream> 
#include <cstdlib> 
#include <cmath> 

using namespace std; 

int main(){ 
    char symbs[] = {'0','X','A'}; 

    for (int i = 0; i != 9 ; i++) { 
     int rndnum = round((double)rand()/(double) RAND_MAX * 3); 
     cout << symbs[rndnum]; 
    } 
    cout << endl; 

    return 0; 
} 

其中(雙)蘭特()/(雙)RAND_MAX爲您提供了從0→1

+0

非常感謝您的幫助。我將使用這個功能。 – Atb 2010-10-23 10:57:44

+0

但沒有人知道如何解決錢的第二個問題?有人可以給我索姆提示嗎? – Atb 2010-10-23 10:58:15

+0

對於這可能只是最好手動檢查組合,因爲你只有5檢查(頂部,中間和底部,和對角線) – Twig 2010-10-23 11:01:13

0

Here is a note約隨機雙C++隨機數,有一些要處理的點...否則,您生成的值可能不是真正的隨機數。

更新:如果我沒有得到你錯了,你所要求的this ...那是一個相當不錯的examle我想,包含超過你所需要的,所以只是撕裂你所需要的部分...

+0

我可以使用二維數組來代替符號嗎? – Atb 2010-10-23 11:12:19

+0

答覆更新... – FallenAngel 2010-10-23 12:00:12