【发布时间】:2015-10-05 07:23:10
【问题描述】:
我正在尝试制作纸牌游戏。 我有 6 个变量存储在数组中。比我使用fisherYates 方法随机化数组,并显示其中的四个。 问题是,当我仅以这种方式随机化它时,它只会给出这六个的随机输出,并且具有所有不同的类型。 所以我想要一些重复,比如,如果你抽四张牌,你会得到输出 例如:俱乐部,俱乐部,钻石,心形,或心形,星形,星形,心形..如果你得到一个点.. 我想这样做:将数组放入4次循环中,每次循环时,它将第一个或最后一个值存储在新数组中,这样我就有更大的机会组合相同的卡片输出数组。 但我被卡住了,我不知道该怎么做:/
这是我迄今为止尝试过的
$diamond = 'cube.jpg';
$heart = 'heart.jpg';
$spade = 'spade.jpg';
$club = 'tref.jpg';
$star='star.jpg';
$qmark='qmark.jpg';
$time=microtime(35);
$arr=[$diamond,$heart,$spade,$club,$star,$qmark];
function fisherYatesShuffle(&$items, $time)
{
for ($i = count($items) - 1; $i > 0; $i--)
{
$j = @mt_rand(0, $i);
$tmp = $items[$i];
$items[$i] = $items[$j];
$items[$j] = $tmp;
}
return $items;
}
$i=0;
do {
$niz[$i]=fisherYatesShuffle($arr,$time);
reset($niz);
$i++;
} while ($i <= 3);
【问题讨论】:
-
你考虑过使用 break 和 continue 关键字吗?
-
嗯..这里怎么应用?
-
阅读有关这些关键字的手册。