如何询问每个玩家是否需要另一张卡片

时间:2017-03-28 19:06:46

标签: c++ blackjack

做了一些改变..但仍然没有工作。现在发生的事情是,如果我输入' y'没有任何事情,程序只是冻结在那里,如果我输入' n',它继续for循环。

这是我到目前为止所拥有的。玩家用阵列的线条表示,他们的手是cols。 CardtabCardHandTab是wchar,代表他们拥有的牌EX:1♥,其余是模拟数组,包含每张卡的值。

实际上只是意识到他们都会得到一张卡,无论他们的回答是什么,因为在执行代码后执行检查条件但是并没有解决我的问题..

void anotherCard(const wchar_t* CardTab[], int ValTab[], const wchar_t* CardHandTab[4][5], int ValHandTab[4][5])
{
    for (int i = 0; i < 4; i++)
    {
        char answer = 0;
        wcout << "Player" << i + 1 << "Would you like another? y/n" << endl;
        cin >> answer;
        while (answer == 'y' || answer == 'Y')
        {
            int x;
            do
            {
                x = rand() % 51 + 0;
            } while (CardTab[x] == NULL);

            CardHandTab[i][3] = CardTab[x];
            ValHandTab[i][3] = ValTab[x];
            CardTab[x] = NULL;
            ValTab[x] = 0;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

 I forgot it needs a way to exit.. adding a break; fixed it 

   void anotherCard(const wchar_t* CardTab[], int ValTab[], const wchar_t* CardHandTab[4][5], int ValHandTab[4][5])
    {
        for (int i = 0; i < 4; i++)
        {
            char answer = 0;
            wcout << "Player" << i + 1 << "Desirez vous une autre carte? y/n" << endl;
            cin >> answer;
            while (answer == 'y' || answer == 'Y')
            {
                int x;
                do
                {
                    x = rand() % 51 + 0;
                } while (CardTab[x] == NULL);

                CardHandTab[i][3] = CardTab[x];
                ValHandTab[i][3] = ValTab[x];
                CardTab[x] = NULL;
                ValTab[x] = 0;
                wcout << CardHandTab[i][3];
                break;
            }
        }
    }