让玩家进入下一场比赛-锦标赛支架(需要一些逻辑)
Advance players to next match - Tournament Brackets (Need some Logic)
我很难想出一种合理的方法来让玩家进入我的锦标赛括号中的新比赛。您可以在此处看到示例:http://www.stickyflames.com/brackets.php?id=3
比赛从1开始到比赛人数结束。(示例中为1-8)。使用问题的第一部分来查看我的比赛是如何设置的:如何按树中的元素(锦标赛括号)确定回合?
下面是一个演示场景:示例1赢得了他的比赛,所以他被扔进了第5场比赛的第1位。而Example2赢得了他的胜利,进入了第5场比赛的第2位。另一方面,Example3和Example4被放入M6插槽中。
你们中有谁知道一些数学算法,可以计算出他们应该在哪里结束比赛吗?(插槽可以使用模数来确定,所以不用担心)
非常感谢。
Math.round(match# / 2) + Round-1-match-count
很高兴你能自己解决:]
另一种看待它的方式:
让我们重新设计这里的问题。现在看来你正在适应这种树
1
5
2
7
3
6
4
类似的事情,你有点想要一个算法,它会得到1/2到5,3/4到6,等等。我敢打赌你可以为此制定一个公式,但它可能比必要的要复杂一点。如果你仔细想想,1/2从不需要输入6,3/4从不需要输入5,等等。事实上,我认为这样看会更容易,也更准确:
0a
2a
1a
3a
0b
2b
1b
我知道你的代码现在是如何格式化的,但如果你想区分它们,你可以做a和b。
现在向上移动的算法只是
if (spot == 0) {
spot=spot+2; //we'll move it to the next because 0 is the only exception
} else { //if odd
spot=spot+1; //ideally we only need to add one to move to the next bracket
}
您只能使用parseInt
来获取号码。但是等一下!因为它们是同一个号码,它怎么知道该去哪个插槽?这就是为什么我们可以使用字母。字符串最酷的地方在于,它们只是一串串在一起的字符。示例:
var word = "Hello";
word[0] = "H";
所以你可以通过做spot[1]
来访问字母,这样你就可以确保a和a保持一致,b和b保持一致。希望这能有所帮助。
哦还有最后一件事。你可能想知道3a怎么样?那里没有b。好吧,我不完全确定你是否想要一个字母,但如果你确实想要,你可以制作你的代码,看看是否存在b。如果没有,那就把它放在一个地方,因为那是它唯一能去的地方。
- 元素未使用当前玩家操作进行更新
- 如何在AngularJS中显示玩家回合
- 移动时停止玩家滑动
- 让玩家进入下一场比赛-锦标赛支架(需要一些逻辑)
- JW玩家:没有找到合适的玩家
- html 5画布如何让玩家跳跃(纯无框架)
- 如何动态更改玩家id和密钥
- 我正在用java脚本编写一个hangman程序,如果玩家失败了,我需要帮助来显示这个词
- 前言跟随玩家对象
- 回合制游戏,你如何决定玩家和电脑之间的回合
- 清除画布玩家路径 - 重绘关卡数组
- 玩家移动速度更快,增量时间更长
- 从 SteamID 获取玩家名称
- 如何将 x 数量的玩家随机分成 2 支球队多次,每次都不同
- 我如何创建一个允许 2 个玩家在 Php/Ajax 中互相战斗的方法
- 需要通过新一轮新玩家转向第一步
- 使敌人跟随移动玩家的问题
- 如何在 Javascript 井字游戏中切换玩家
- 背对墙壁的玩家不应碰撞
- 在服务器上,不会呈现玩家移动