首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >圆形填“再见”

圆形填“再见”
EN

Stack Overflow用户
提问于 2016-09-02 13:21:39
回答 1查看 256关注 0票数 0

我正在用一个圆形罗宾来安排比赛。我希望每支球队都能打"n“游戏,我也有"x”队。如果"x“是偶数的话,一切都很好,但是如果"x”是奇怪的,我必须增加另一个团队,“拜”才能让它开始工作。

当我有11支球队每场打4场比赛的时候,这样就能让4支球队获得胜利。这是低效的,因为他们可以只打对方,让每支球队打4场比赛。

在安排了所有的比赛,包括一支球队“拜拜”的比赛之后,我试着让所有有“拜拜一周”的球队互相对抗。我需要确保球队以前没有打过比赛。

因为我使用的是少数的团队,我只是使用随机化来尝试组合,直到其中一个工作。但是,我不能让它起作用。

这是我的代码,它安排了各队之间的轮回比赛。我想通过和检查,看看他们是否曾经玩过,如果他们有,随机列表,以便我们可以尝试不同的组合。我不认为检查到目前为止这几支球队是否踢过比赛是有效的,因为即使球队有重叠,他们也不会洗牌。

代码语言:javascript
复制
while (true){
                        $needshuffled = "no";
                    for ($j=0; $j < $maxgames/2; $j++){
                        $k = $j*2;
                        $round[$maxgames][$j]["Home"]=$byeteams[$k];
                        $round[$maxgames][$j]["Away"]=$byeteams[$k+1];

                        $home = $round[$maxgames][$j]["Home"];
                        $away = $round[$maxgames][$j]["Away"];

                        $sql = "SELECT * FROM `temp` 
                            WHERE (Home = '$home' and Away = '$away') 
                               or (Home = '$away' and Away = '$home')";
                        if ($conn->query($sql) === TRUE) {
                            if ($result=mysqli_query($conn,$sql))
                            {
                                    // Return the number of rows in result set
                                    $rowcount=mysqli_num_rows($result);
                                    if ($rowcount > 0)
                                    {
                                        $needshuffled = "yes";
                                    }
                            }   

                        }
                    }

                    if ($needshuffled == "no"){
                        break;
                    }
                }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 16:25:15

如果您将if ($conn->query($sql) === TRUE)用于select语句,请参阅文档

失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

因为您已经做了两次了,所以可以完成删除这一行,只需使用

代码语言:javascript
复制
$sql = "SELECT * FROM `temp` 
        WHERE (Home = '$home' and Away = '$away') 
        or (Home = '$away' and Away = '$home')";
if ($result=mysqli_query($conn,$sql)) {
    ...

或者,由于变量$round中已经有完整的计划,所以可以使用它来检查现有的匹配项。

你可以尝试一种不同的策略:

对于数量不均衡、天数偶数的循环知更鸟,在未来的某一天,已经有拜拜的球队子集将与一支已经拜拜的球队进行对决,而所有还没有拜拜的球队要么在那天有拜拜,要么就会与一支还没有拜拜的球队比赛。

你所需要做的就是不断地生成圆周知了的桌子,直到你找到这一天,并使用当天的火柴。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39293517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档