想实现一个淘汰赛,搜肠刮肚也没理清思路,还请各路豪杰赐教
简单描述:
红蓝各最多有8支队伍。
首先各方内自行捉对厮杀,胜者进入下一轮,败者淘汰出局。
如果捉对失败,直接轮空进入下一轮。
最后红蓝仅剩的队伍厮杀,决出冠军。
数据结构最好简洁,因为要存入数据库。
各位大大帮忙啊 :D
比赛表:A队,B队,胜者,轮次
队伍表:名称,类型(红/蓝)
比赛表例: 红1,红6,红1,1(红1与红6在第一轮红1胜)
红2,红2,红2,2(红2第2轮轮空)
然后麻烦楼主说清楚一点啊,你需要的帮助是什么?是完整实现一个淘汰赛还是只要数据结构?
实现淘汰赛要实现怎么样的?有什么逻辑和规则?
需求不明,只能给你思路,先按类型分成红队组和蓝队组,然后红队随机出一个顺序,假设有7支队随机到2345176,就按照2和3比,4和5比。。。的顺序比赛,决出胜利者,蓝队效仿,然后红队蓝队比一次。
小case
首先是队伍表
id,队伍名,红蓝方,存活死亡。
然后是比赛表
id,日期,获胜队伍id。
可能要制订规则不能平局,必须胜负。
搞定了!!
表A
队伍id 队伍名称 队伍类型
01 小红 红队
02 小猫 红队
03 小刚 红队
04 小狗 蓝队
05 小猴 蓝队
表B
场次 队伍id1 队伍id2 胜
1 01 02 02
算法:
对表A按队伍类型分组排序,然后存入List
每次从List中随机取2个队伍比赛,然后将获胜的队伍放入List
结束条件就是List中只有1个队伍,然后红蓝List进行决赛
最后,将结果入库表B