私は、2 つのブロックを選択する必要があり、それらが同じ場合は開いたままにするゲームの 1 つを作成しています。別のブロックを選択すると、ブロックが閉じ、別の 2 つのブロックを選択する必要があります。
これまでの私のコードは次のとおりです。
public $pictures = ['apple.png', 'cake.png', 'coconut.png', 'guava.png',
'guawa.png', 'kiwi.png', 'limewire.png', 'pear.png'];
private function makeGame()
{
foreach($this->pictures as $picture)
{
for($i = 0; $i < 2; $i++)
{
$this->mapBoard[] = array('value' => $picture, 'x' => $this->randomPos('x'), 'y' => $this->randomPos('y'));
}
}
}
private function randomPos($arg)
{
$random = mt_rand(1,4);
if(!empty($this->mapBoard))
{
foreach($this->mapBoard as $image)
{
if($image[$arg] == $random)
$this->randomPos($arg);
else
return $random;
}
}
else
{
return $random;
}
}
しかし、'x' と 'y' の値が繰り返されることがあります。どこが間違っているか、または一意の x & y を生成する別の方法を教えてください。