C++ 用于循环比较二维数组???帮助!

C++ 用于循环比较二维数组???帮助!,c++,C++,我目前正在开发一款游戏,玩家在其中玩老虎机。该游戏基于用户停止使用货币,100sek、300sek或500sek。然后用户为每个游戏下注。独臂土匪在九块地上随机吐出3个不同的符号。见图: 游戏的目标是获得尽可能多的相同符号的行、列和对角线。在上面我做的例子中,当上下两行有相等的符号,两个相同的符号排成一行(aaa)时,我获得了利润。 以下利润系统取决于符号相同的行数: •一个系列提供2*赌注 •两行3*赌注 •三行,下注4* 四行赌5* •五行可下注7* •完全竞争环境下10*赌注 我不知道如

我目前正在开发一款游戏,玩家在其中玩老虎机。该游戏基于用户停止使用货币,100sek、300sek或500sek。然后用户为每个游戏下注。独臂土匪在九块地上随机吐出3个不同的符号。见图:

游戏的目标是获得尽可能多的相同符号的行、列和对角线。在上面我做的例子中,当上下两行有相等的符号,两个相同的符号排成一行(aaa)时,我获得了利润。 以下利润系统取决于符号相同的行数:

•一个系列提供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 two-dimensional array????
srand(时间(0));
字符游戏[3][3]={'O','X','A'},{'X','A','X'},{'A','O','O'};
对于(int i=0;i<3;++i)
{ 
int r=rand()%3;
cout您可以使用来检查矩阵中的元素是否彼此相等。您已经知道如何访问矩阵中的每个元素(
game[r][0]
,等等)

现在,您所要做的就是检查沿着一行、对角线等的元素是否相等

此外,您需要存储随机生成的符号。您应该创建一个新的矩阵(或2D数组),例如,
结果

例如

现在,当您显示老虎机结果时,请将其存储在此2D数组中:

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

cout我不确定我是否完全理解您的需求,但我已决定尽我所能解释它们。此代码符合我认为您的要求。我使用了0、1和2作为字符,但您可以轻松地将它们替换为输出中所需的任何字符。我也不费心计算支出,因为您已经为至少在你的问题上

int game[3][3];
int x, y;
int lines = 0;

// select a random grid
srand(time(0));
for(x = 0; x < 3; x++) {
    for(y = 0; y < 3; y++) {
        game[x][y] = rand() % 3;
        cout << game[x][y];
        if (y == 2)
            cout << '\n';

    }
}

// count horizontal lines
for (y = 0; y < 2; y++)
    if (game[0][y] == game[1][y] && game[0][y] == game[2][y])
        lines++;

// vertical
for (x = 0; x < 2; x++)
    if (game[x][0] == game[x][1] && game[x][0] == game[x][2])
        lines++;

// diagonal
if (game[0][0] == game[1][1] && game[0][0] == game[2][2])
    lines++;
if (game[0][2] == game[1][1] && game[0][2] == game[2][0])
    lines++;

cout << lines << " lines\n";
int游戏[3][3];
int x,y;
int行=0;
//选择一个随机网格
srand(时间(0));
对于(x=0;x<3;x++){
对于(y=0;y<3;y++){
game[x][y]=rand()%3;

如果你继续这样做,我们可能需要新的StasExchange网站,用二维数组制作C++中的老虎机游戏(参见:你到底想比较什么?上面所有的代码都是在控制台上打印一些东西,但是这些信息并没有存储在任何地方。还有,什么是序列?你怎么能在一块只有三行的板上得到四行呢?你的代码只打印出一个3x3的字符网格。似乎没有任何东西可以与任何东西进行比较?你怎么能你有“四排”当网格中只有三行的时候?我想这个问题的答案很简单,只要问题有意义;)好吧,很抱歉没有解释得这么好。我在做老虎机。玩家插入钱:100、300或500。然后玩家下注,不能超过插入的金额。我希望游戏开始,三种不同的方式符号出现在屏幕上(X、A和O)的9个不同区域。例如:@Steve:LOL,我们的想法似乎很相似:)我想你让我开心!!!上帝保佑你。我刚刚发布了一个新问题,但我不认为我需要。我现在要直接尝试这个问题!!我很高兴:D:D我希望它能工作只有一个问题。我如何获得符号(a、x、o)与数字不同?@Atb,你需要理解的是,社区也是如此。我几乎为你做了所有的工作,但你还没有接受甚至投票给我的答案。你仍然需要更多的帮助。我很抱歉。我真的很感谢你给我的所有帮助。只是我是这个网站的新手,我还不知道它是如何运作的,我真的很抱歉我忙着让我的代码工作,因为我不是很好的C++,事实上我很烂!我读过一本书,但我仍然不擅长做我自己的功能:/对不起,你现在应该对我有用了。但是你知道如何把数字变成符号吗?如果你不想,你不必帮助我。只是这样。我在这个游戏上工作了很长时间,这是我唯一要解决的问题:/:/谢谢你对我的帮助:)
bool horz_equal[3];
for(int r = 0; r < 3; ++r) 
{
  horz_equal[r] = (results[r][0] == results[r][1] && results[r][1] == results[r][2]);
}
int game[3][3];
int x, y;
int lines = 0;

// select a random grid
srand(time(0));
for(x = 0; x < 3; x++) {
    for(y = 0; y < 3; y++) {
        game[x][y] = rand() % 3;
        cout << game[x][y];
        if (y == 2)
            cout << '\n';

    }
}

// count horizontal lines
for (y = 0; y < 2; y++)
    if (game[0][y] == game[1][y] && game[0][y] == game[2][y])
        lines++;

// vertical
for (x = 0; x < 2; x++)
    if (game[x][0] == game[x][1] && game[x][0] == game[x][2])
        lines++;

// diagonal
if (game[0][0] == game[1][1] && game[0][0] == game[2][2])
    lines++;
if (game[0][2] == game[1][1] && game[0][2] == game[2][0])
    lines++;

cout << lines << " lines\n";