>我正在尝试创建一个内存游戏,但我遇到了这个问题,我无法循环浏览所有具有 2 倍相同 id 的图像,因此 2x id1、2x id2 2x id3 等。此外,id需要随机分配给图像。
PHP:
class Kaart
{
public function getCard()
{
for ($x = 1; $x <= 16; $x++) {
echo "<img src='img/card_back.jpg' id=RANDOMID>";
}
}
}
当您创建Kaart
对象时,这将通过合并您传入的数字范围的两个列表(合并两个范围 -range(1,$count)
(来创建一副牌,然后洗牌。
然后显示牌只是意味着在洗牌的牌组上循环......
class Kaart
{
private $deck = null;
public function __construct( $count ) {
// Create list with 2xid's
$this->deck = array_merge(range(1,$count), range(1,$count));
// randomize the deck
shuffle($this->deck );
}
public function getCard()
{
// Loop over the randomized dech
foreach ( $this->deck as $card ) {
echo "<img src='img/card_back.jpg' id='{$card}'>";
}
}
}
// Create deck with 2x8 cards
$deck = new Kaart(8);
$deck->getCard();
您可以使用array_chunk
将相同的id随机化2次。
$img = [];
for ($x = 1; $x <= 16; $x++) {
$img[] = $x;
}
$i=1;
foreach( array_chunk($img, 2, true) as $k => $array){
foreach($array as $val){
echo "<img src='img/card_back.jpg' data-id=".$i.">";
}
$i++;
}