该游戏有4名玩家。每轮玩家轮流结束后轮流成为卡沙皇。我已经存储了在向量中分配给每个玩家的卡片。我将如何在这场比赛中创造轮次?我会在main函数中创建一个循环来运行4次并清除向量并在循环中调用我的函数吗? 这是我的主要功能:
{{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;
}
然后你可以用更直接的方式将球员交给他们的手