大2游戏控制(控制游戏流程) 我在C++中创建了一个游戏2大游戏,我已经创建了一副52张牌,四个手物品,一个经销商对象,将洗牌并把这些牌处理到手部对象。这部分已经完成。现在,钻石为3的玩家将在开始时开始游戏。然后轮到玩家2、玩家3、玩家4。但如果玩家2拥有它,那么将由玩家2开始游戏,轮到玩家3,玩家4和玩家1
有很多种可能性,因为每轮比赛后都会有一名新球员获胜。我无法找到一种方法使循环和再次使用代码,直到手中的牌数为0,这是玩家获胜的条件。对于四个玩家来说,控制这个流量是非常困难的,如果是对于两个玩家来说,这将是很容易的,但是4个玩家意味着很多情况下这些玩家都是对象类型的。 请给我一些想法,以实现大2的游戏流程,因为如果我们完成这一部分,我们将能够完成游戏大2游戏控制(控制游戏流程) 我在C++中创建了一个游戏2大游戏,我已经创建了一副52张牌,四个手物品,一个经销商对象,将洗牌并把这些牌处理到手部对象。这部分已经完成。现在,钻石为3的玩家将在开始时开始游戏。然后轮到玩家2、玩家3、玩家4。但如果玩家2拥有它,那么将由玩家2开始游戏,轮到玩家3,玩家4和玩家1,c++,C++,有很多种可能性,因为每轮比赛后都会有一名新球员获胜。我无法找到一种方法使循环和再次使用代码,直到手中的牌数为0,这是玩家获胜的条件。对于四个玩家来说,控制这个流量是非常困难的,如果是对于两个玩家来说,这将是很容易的,但是4个玩家意味着很多情况下这些玩家都是对象类型的。 请给我一些想法,以实现大2的游戏流程,因为如果我们完成这一部分,我们将能够完成游戏 注意:该玩家的当前牌局与前一玩家的牌匹配 如果我错了,请原谅,但您是在问如何跟踪每轮玩家的顺序,对吗 如果是这种情况,听起来你应该以逆时针顺序将玩
注意:该玩家的当前牌局与前一玩家的牌匹配 如果我错了,请原谅,但您是在问如何跟踪每轮玩家的顺序,对吗 如果是这种情况,听起来你应该以逆时针顺序将玩家对象存储在一个数组中。现在你只需要追踪最后一个玩家作为索引,下一个玩家应该是下一个索引。我假设你的卡片是以整数的形式存储的,从低到高,但这是另一种猜测。根据规则,钻石、红桃、梅花、黑桃的价格最低。对于每一套衣服,3是最低的,2是最高的,在中音标准“3,4,5,…J,Q,K,A,2”中的所有东西
我不知道为什么我要叫那个索引
startPlayer
它应该是playerIndex
或者什么的。“请不要声明这个问题不清楚,因为我真的需要答案。”。这个问题一点也不清楚。您可能应该发布一些特定于您遇到的问题的代码。此外,永远不要告诉别人你正在寻求“不要做”某事的帮助。模运算:next\u player\u index=(next\u player\u index+1)%TOTAL\u PLAYERS代码>或转到另一个方向:下一个玩家指数=(下一个玩家指数+玩家总数-1)%代码>三元运算符:next\u player\u index=next\u player\u index+1>玩家总数-1?0:下一个玩家索引+1代码>或转到另一个方向:下一个玩家索引=下一个玩家索引-1<0?玩家总数-1:下一个玩家指数+1对不起,我吃得太多只是为了好玩!谢谢你的建议,但是按照你告诉我的方式,我可以在当前玩家之后执行玩家。例如,如果玩家2赢了,那么玩家3和玩家4,在阵型条件下,但是玩家1呢?如果我们这样做,我想也会有很多条件,可能无法解决问题,因为玩家2给出的输入需要存储在一个数组中,并与前一个数组进行比较,依此类推。我不理解玩家1的索引=0的问题。从0开始,如果大于3,则返回0。此外,如果您需要更改起始玩家,请使用上面的代码查找将开始这一轮的玩家。从技术上讲,游戏应该有5手和4名玩家。每位玩家一手牌,桌上一手牌可以是1到5张牌,而每位玩家的牌可以是11到17“取决于你使用的规则”。赢家是第一个扔掉所有卡片的人,对吗?然后它又重新开始。
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;
}
}