問題:インターネットプログラミングクラス用のビデオポーカーゲームを作成しています。
以下のロジックに何かが欠けていることを除いて、他のすべてが機能しています。私が持っているのが3種類の場合、フルハウスの場合はtrueに戻ります。
私はこの種の作品の3つの論理を知っています。しかし、3 of a Kindに関係していない2枚のカードを比較すると、何かがおかしいところです。
コードは次のとおりです。
//Calculate if Full House exist
function checkHouse()
{
$kindFlag = false;
$pairFlag = false;
$tempCardValue = 0;
$temp = array();
$counter = 0;
//check for 3 of a kind, save card positions so they aren't tested for a pair
for($i=0; $i<3; $i++)
{
for($j=($i+1); $j<4; $j++)
{
for($k=($j+1); $k<5; $k++)
{
if($this->Hand[$i]->GetSortValue() == $this->Hand[$j]->GetSortValue() && $this->Hand[$i]->GetSortValue() == $this->Hand[$k]->GetSortValue())
{
$kindFlag = true;
$tempCardValue = $this->Hand[$i]->GetSortValue();
break 3;
}
}
}
}
//Checks 2 remaining cards to see if they match
for($i=0; $i<5; $i++)
{
if($this->Hand[$i]->GetSortValue() != $tempCardValue)
{
$temp[$counter] = $this->Hand[$i]->GetSortValue();
$counter++;
}
}
if($temp[0] == $temp[1])
{
$pairFlag = true;
}
//Computes Full House or not
if($pairFlag && $kindFlag)
return true;
else
return false;
}