在纸牌游戏中回合

时间:2016-12-05 16:44:23

标签: c++ playing-cards

该游戏有4名玩家。每轮玩家轮流结束后轮流成为卡沙皇。我已经存储了在向量中分配给每个玩家的卡片。我将如何在这场比赛中创造轮次?我会在main函数中创建一个循环来运行4次并清除向量并在循环中调用我的函数吗? 这是我的主要功能:

{{1}}

1 个答案:

答案 0 :(得分:0)

要进行回合,您可以使用循环指示器循环,按顺序击中每个玩家。一种简单的数字方法是

int currentCzar = 0;
while(gameIsNotOver)
{
  *Do game stuff*
  currentCzar = (currentCzar+1) % numPlayers;
}

因为currentCzar总是少于numPlayers

(currentCzar+1) % numPlayers;

将始终返回值c where

0 <= c <= numPlayers-1

然后只是让一些其他的旗帜告诉你什么时候停止像胜利条件一样。 numPlayers也是数组的大小。

编辑: 您可能还想更改构建数据的方式。也许通过让玩家成为一个类或结构,以便你可以拥有像

这样的东西
class Player{
   vector<string> whiteCards;
   vector<string> wonBlackCardsl
   //Boilerplate class code
}
vector<Player> players;
*assign cards and create players*
int currentCzar = 0;
while(gameIsNotOver)
{
   *Do game stuff*
    //Have players[currentCzar] choose a black card
    //Have every other player put down a white card
    currentCzar = (currentCzar+1) % numPlayers;
}

然后你可以用更直接的方式将球员交给他们的手