Big 2游戏控制(控制游戏流程)

  • 本文关键字:游戏 控制 Big c++
  • 更新时间 :
  • 英文 :


我正在用C++创建一个游戏Big 2游戏,我已经创建了一副52张牌,四手牌对象,一个将洗牌并将这些牌发到手牌对象的发牌者对象。此部分已完成。现在,拥有钻石3的玩家将在开始时开始游戏。然后轮到玩家2、玩家3、玩家4。但如果玩家2拥有它,那么将由玩家2开始游戏,轮到玩家3,玩家4和玩家1。

有很多可能性,因为每轮比赛后都会有一名新选手获胜。我找不到一种方法来循环并再次使用代码,直到手中的牌数为0,这是玩家获胜的条件。对于四名玩家来说,很难控制这种流量,如果是两名玩家,那就很容易了,但四名玩家意味着这些玩家在很多情况下都是对象类型的。请给我一些实现Big 2游戏流程的想法,因为如果我们完成这一部分,我们就可以完成游戏!

注意:玩家当前的牌局与上一位玩家的牌局匹配!

如果我错了,请原谅我,但你问的是如何跟踪每轮玩家的顺序,对吗?

如果是这种情况,听起来应该将Player对象按逆时针顺序存储在数组中。现在你只需要跟踪最后一个玩家作为索引,下一个玩家应该是下一个索引。我假设你的卡片存储为整数,从低到高的顺序,但这是另一种猜测。根据规则,钻石、红心、球杆、黑桃,钻石最低。对于每一套衣服,3是最低的,2是最高的,中间的所有声音标准为"3,4,5,…J,Q,K,A,2"。

void startRound(void)
{
    // six cards created during deal
    if(kitty.hasThree())
    {
        int lowestCard = -1;
        for(int i = 0; i < 4; i++)
        {
            int playerLowestCard = players[i].getLowestCard();
            if(playerLowestCard < lowestCard)
            {
                startPlayer = i;
                lowestCard = playerLowestCard;
            }
        }
    }
    else
    {
        for(int i = 0; i < 4; i++)
        {
            if(players[i].hasThree())
            {
                startPlayer = i;
                break;
            }
        }
    }
}

我想我很理解你的问题和大比分的比赛。

编辑:如果你想知道如何循环下一个玩家…

void goToNextPlayer(void) {
    startPlayer++;
    if(startPlayer >= 4) {
        startPlayer = 0;
    }
}

我不知道为什么要把索引称为startPlayer——它应该是playerIndex之类的。

最新更新