【发布时间】:2018-05-04 18:28:09
【问题描述】:
我正在构建一个游戏,其中用户加入游戏大厅,然后分成两个团队,然后回答问题。 但我有一个问题,除了团队随机化器之外的一切都完成了。 我希望在按下按钮时将用户分配到一个团队,这不是问题,我可以这样做。
问题在于组建团队。 现在我通过这行代码获取并显示当前用户
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
echo utf8_encode("<div><br>". $row["name"]. " <b>| Lag : </b><span>" . $row["team"] . "</span><br></div>"); // för namn osv
mysqli_close($link);
}
}
}
echo "";
我希望所有用户均等地随机分配到两个大团队,因此我不能使用简单的随机分配器让用户有 50/50 的机会加入一个或另一个团队,因为这有可能使团队非常不平等。
当用户被分配到一个团队时,脚本将运行一个查询,为每个用户更新一个名为“团队”的列,然后游戏将开始。
我怎样才能做到这一点,以便在按下按钮时,代码会获取用户并将所有用户放入两个不同的团队中? 这是用数组完成的,还是什么?我一无所知!
团队尽可能平等是很重要的。
我该怎么办? 我见过用 javascript 做的事情,但这在这里不起作用。
澄清。
没有最大球员,有两支队。我将运行一个查询,将用户分配给数据库中的一个团队。
如果我遗漏了什么,或者需要更多信息,请告诉我!
【问题讨论】:
-
注意:
mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)和$db->prepare("…")程序接口是 PHP 4 时代引入的mysqliAPI 的产物,不应在新代码中使用。 -
提示:要将人员分成两个团队,请为每个用户分配一个随机的“订单”编号,然后按照结果顺序将他们拆分为奇数/偶数或前半部分/后半部分。
-
您可以将所有用户存储在一个数组中,对数组进行洗牌,然后执行一个占用户总数一半的 array_chunk。然后你会有两个随机用户的数组。
-
我已经研究过了,但是之后我该如何处理数组呢?我留下了一个数组,但我不知道如何使用它。如何更新列??
-
@Jonas 如果我的编辑中有任何关于澄清您的帖子的错误,请修复它。