dora12345678 2018-05-29 09:56
浏览 21
已采纳

如何在PHP中配对玩家? [关闭]

I started learning and I am making a project for a home fifa18 cup. I have one problem, I don't know how I can pair all players I mean: Player1, Player2, Player3, Player4

=> P1 vs P2, P1 vs P3, P1 vs P4 
=> P2 vs P3, P2 vs P4 
=> P3 vs P4

I use Newton formula n!/k!(n-k)! to count how many match without revenge will be and have all players in $tab.

So now, my question, how can I pair this?

Like that and it will be not repetition & P1 vs P1 example.

<?php
    require("server/baza.php");
    $przelacznik = 1;//$_POST['losuj'];
    $zapytanie = "select nick from mecze";
    if($przelacznik == 1){
        $wynik = mysqli_query($polaczenie,$zapytanie);
        $tab = array();
        $n=0;
        while($wiersz = mysqli_fetch_assoc($wynik)){ 
            array_push($tab,$wiersz['nick']);
            //$tab[] = $wiersz;
            $n++;  
        }
        $Nsilnia = 1;
        $NKsilnia =1;
        for ($i=1; $i<=$n; $i++) {
            $Nsilnia *= $i;
        }
        for($j=1;$j<=($n-2);$j++){
            $NKsilnia *= $j;
        }
        $ilosc_rozgrywek = ($Nsilnia)/(2*$NKsilnia);
}
?>
  • 写回答

4条回答 默认 最新

  • dsfhd78978 2018-05-29 10:19
    关注

    If P1 vs P2 and P2 vs P1 are not same. Then use this one.

    $player_list = ['p1', 'p2', 'p3', 'p4'];
    $player_pair = array();
    foreach($player_list as $key => $player){
        for($i = 0; $i < count($player_list); $i++ ){
            if($i != $key){
                $player_pair[] =  $player_list[$i] . ' VS ' . $player;
            }
        }
    }
    print_r($player_pair);
    

    ELSE USE THIS ONE:

    $player_list = ['p1', 'p2', 'p3', 'p4'];
    $player_pair = array();
    foreach($player_list as $key => $player){
        for($i = 0; $i < count($player_list); $i++ ){
            $str = $player_list[$i] . ' VS ' . $player;
            $str2 = $player . ' VS ' . $player_list[$i];
            if($i != $key && !in_array($str, $player_pair) && !in_array($str2, $player_pair)){
                $player_pair[] =  $player_list[$i] . ' VS ' . $player;
            }
        }
    }
    print_r($player_pair);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效