Big 2游戏控制(控制游戏流程)
Big 2 Game Control ( Controls Flow of Game)
我正在用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
之类的。
相关文章:
- 控制允许动态运行c++的并发操作数
- 从控制台中删除最后打印的元素
- 是否可以使用if constexpr删除控制流语句
- 在C++游戏中与库存系统作斗争
- 无法在windows控制台中为C++程序提供必要的输入
- 换位表导致测试失败(但在游戏中运行良好)
- Craps游戏问题,忽略if语句
- 矢量下标超出SFML游戏中的范围
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 控制到达非空函数clang(-Wreturn-type)的末尾
- 查找 GCD:并非所有控制路径都返回值
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 如何在CUI游戏中输入C 控制台中的密钥输入
- C 在Win32控制台中制作游戏
- SDL 中的倾斜控制,适用于 Android NDK JNI 游戏
- Big 2游戏控制(控制游戏流程)
- 游戏循环帧速率控制问题
- 发行控制游戏帧率的c++
- 通用游戏控制/用户界面库或源代码
- 在游戏中改变游戏控制