这里主要就德州扑克如何进行分池做分析
主池:当轮次下注数相同的部分进入主池
分池:当轮次下注不足时,多出的部分
分池出现的原因就是有人allin啦,当allin的人数逐渐增多,allin数值又不相同的情况下,就会出现多个分池啦!
分池思路:
根据allin的玩家数来分池,如果allin玩家只有一位,那么当轮只有一个主池.下一轮有玩家下注时开始出现边池,接下来所有玩家的注都进入第一个边池. 依次类推,直到游戏结束.
根据玩家进行的分池分析(这里只考虑出现allin玩家的情况):
--弃牌玩家: 弃牌玩家的注根据allin玩家的下注数进池
--跟注玩家: 跟注玩家一定是当轮下注最多的,所以每一个池内都会有跟注玩家下的注
首先将allin的玩家数进行排序,
allin玩家为n位,当n>=2时,alin最小的玩家只参与主池,判断allin最大值是否与小于注玩家下注数,小于则有n+1个池,相等则有n个池. 此时对应的池中的注为: allin[n]*参与该池下注的非弃牌玩家数+(弃牌玩家下注-allin[n-1]) ,没有allin[n-1]时为0
赢家拿走参与过的池,赢家未参与的池退回给多下注的玩家
local function FlytoWhere(allin,normal,abandon)
--对玩家进行排序
--allinplayer{
{allin玩家索引,allin数值}}