【问题标题】:Checking for straight combination in poker检查扑克中的顺子组合
【发布时间】:2015-04-11 11:20:27
【问题描述】:

我想检查扑克游戏中的顺子组合。

所以,我有这个数组:var tempArr:Array = new Array;

我有这个用于对数组进行排序:

for (i = 0; i < 7; i++)
{
    tempArr[i] = pValue[i];
}
tempArr.sort( Array.NUMERIC );

pValue是卡片的值,范围从2到14。

所以,如果我有这个数组:tempArray = [2,3,3,4,5,5,6];

我如何检查我手中是否有顺子组合?

【问题讨论】:

    标签: actionscript-3 flash-cs6 poker


    【解决方案1】:

    如果你手头有卡,设置一个桶数组来保存

    var t:Array = [];
    //t[2] = 1;mean you have 2
    // t[3] = 0;mean you don't have 3
    
    //first initialize t
    for(var i:int = 0; i < 15; i++)
    { 
       t[i] = 0;
    }
    
    //then set the values from  tempArray
    for (var j:int = 0; j < tempArray.length; j++)
    {
       t[tempArray[j]] = 1;
    }
    
    //if you have a straight combination in your hand
    //you will get a k that t[k] & t[k-1]& t[k-2] & t[k-3] & t[k-4] == 1
    
    var existed:boolean = false;//the flag save if you got a straight combination
    
    for (var k:int = t.length - 1; k >= 4; k--)
    {
    
        if (t[k] == 0)
        {
            continue;
        }
    
        if ((t[k] & t[k-1] & t[k-2] & t[k-3] & t[k-4]) == 1)
        {
             existed = true;
             break;
        }
    }
    

    【讨论】:

    • 别忘了特例 2-3-4-5-14!
    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多