最初の質問はここにあります... 私は単純な3枚のカードのハンドの評価者をコーディングしていて、複数の "ストレート" )を値の配列から削除します。値の配列で3つのシーケンスをすべて見つける方法
私はすべての直線を抽出して返す必要があります。ここでの例は次のとおり
(アレイが第一増分数値的にソートされると仮定)
myArray = [1h,2h,3c,3h,4c]
可能な3値の配列である: [1H、2H、3C] [1H、2H、3H] [2h、3c、4c]
ここで、配列に.valueと.suitのカードオブジェクトが含まれている3のシーケンスを見つけるための私のオリジナルコードです。この質問を簡単にするために私はここで、「2時間」などを置く:もちろん
private var _pokerHand = [1h,2h,3c,3h,4c];
private function getAllStraights(): Array
{
var foundStraights:Array = new Array();
for (var i: int = 0; i < (_handLength - 2); i++)
{
if ((_pokerHand[i].value - _pokerHand[i + 1].value) == 1 && (_pokerHand[i + 1].value - _pokerHand[i + 2].value) == 1)
{
trace("found a straight!");
foundStraights.push(new Array(_pokerHand[i], _pokerHand[i + 1], _pokerHand[i + 2]));
}
}
return foundStraights;
}
が、それは(3の上記のような)値の重複がある場合に失敗します。彼らは異なるスーツになる可能性があるので、私は重複を捨てることはできません。私は上記の例のようにすべてのストレートが必要です。これは私が "ストレートフラッシュ"を見つけるために "フラッシュ"機能を通してストレートを走らせることを可能にする。
どのような配列の反復方法がありますか?
私は別の解決策を見つけた可能性があります。私は最初にスーツのソートと重複カードの破棄(一時的)によってストレートフラッシュをチェックする必要があります。ストレートフラッシュが見つからない場合は、再度ストレートをチェックすることができます。この時点でスーツは重要ではありません。 – LilGames