我正在开发一个刮刮卡游戏,用户从我/我的商店购买刮刮卡,然后可以通过刮掉数字并匹配 3 张图片来兑换该卡以赢取奖品
就像实体刮刮卡一样,我希望预先配置好奖品,以便我知道什么时候会中奖,但显然用户不知道,这样我就可以限制奖品,所以它不是真正的随机,而是随机谁中奖的条款..
我知道我将如何设置奖品,但我需要检查数组中的每个数据值以确保没有 3 个匹配的数字,除非他们真的赢了..
到目前为止我有这个(我会整理它并很快缩短代码)
$numbers = array(
0 => rand(0,9),
1 => rand(0,9),
2 => rand(0,9),
3 => rand(0,9),
4 => rand(0,9),
5 => rand(0,9),
6 => rand(0,9),
7 => rand(0,9),
8 => rand(0,9)
);
它只是随机生成 9 个数字和
echo "<table>";
$i=0;
for($x=0;$x<3;$x++){
echo "<tr>";
for($y=0;$y<3;$y++){
echo "<td>" . $numbers[$i] . "</td>";
$i++;
}
echo "</tr>";
}
将它们排序为 3x3 表
我知道有命令 in_array() 将通过数组进行排序以查找某些值,但我不想运行一个无限循环检查每个值以查看是否匹配,因为它是劳动密集型的并且也会很混乱。
我正在寻找任何人可能有的建议,这样我就可以对数组进行排序,看看是否存在任何 3 个数字,如果存在,并且他们不应该(即用户实际上没有中奖)然后一个应更改为新号码。
所以提前感谢您的帮助,我期待您的建议
卢克
** * *编辑* *
+更多信息
为了挑选获胜者,我将使用这样的数据库查询
$stock = $conn -> query("SELECT DISTINCT * FROM codes WHERE Available = 1 AND 0 = FLOOR(RAND()*Chance) ORDER BY RAND()");
每个代码都有一定的获胜机会,如果匹配,则会显示,根据赢得的代码,将显示特定的奖品
$stock = $conn -> query("SELECT DISTINCT * FROM codes WHERE Available = 1 AND Win = 1);
'Win' 将是数据库中的一个表,每次有人玩游戏时它都会下降 1
所以每个代码都会有表格 Win 当它达到 1 时它将在下一场比赛中弹出
这是我能想到的两种我认为可行的方法,这两种方法都可以让我大致控制何时以及是否有人获胜,但第二种解决方案显然是一种更准确的方法