我正构建一个游戏,用户加入游戏大厅,然后分成两个小组,然后回答问题。 但我有一个问题,除了团队随机客户之外的所有事情都已完成。 我希望在按下按钮时将用户分配给团队,这不是问题,我可以这样做。
问题在于制造团队。 现在我正在通过这行代码获取并显示当前用户
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看过东西,但这不起作用。
澄清。
没有最多的球员,有两个球队。我将运行一个查询,将用户分配给数据库中的团队。
如果我遗漏了某些内容,或者需要更多信息,请告诉我!
答案 0 :(得分:1)
一旦你获得了结果集中的列表玩家,就可以使用shuffle()函数对其进行混洗,然后将前半部分球员分配给球队1,将另一半球员分配给球队2
下面假设将有两支球队拥有偶数球员:
<?php
$players = array("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8");
//Players list before shuffling
var_dump($players);
shuffle($players);
//Players list after shuffling
var_dump($players);
// Get number of players per team
$player_count = count($players);
$players_per_team = $player_count/2;
$teams = array_chunk($players,$players_per_team);
$team_1 = $teams[0];
$team_2 = $teams[1];
echo 'Team 1';
var_dump($team_1);
echo 'Team 2';
var_dump($team_2);