吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 299|回复: 28
收起左侧

[经验求助] 软件思路求助

[复制链接]
xiaochenzimo 发表于 2024-4-16 11:18
200吾爱币
我写了个摔跤编排的软件,它含有抽签和对阵图的模块,对阵图中存在资格赛的问题,现在排序的方式是按照我种子选手的算法的排序方式进行的排序,如1对128 120对64,我现在想要在不影响原数据的情况下,把他们的抽签和对阵图都按照1对2 3对4,这样的顺序显示在抽签和对阵图中,但是1还是对的128号种子选手的数据,只是在对阵图和抽签中显示变为1对2号。有没有的大神能提出好的思路,只要是试验后可以实行,就结算给谁。

最佳答案

查看完整内容

选手表 athlete,有如下字段:表id、姓名、等其他信息。 对阵表 competition,有如下字段:表id、status、选手id、对手id(这里的id是 competition 表的另一个表id)、轮次 —————————————————————————————————————— 对阵表中 选手id 用的是 athlete 表中的 表id,用 表id 能更快查询选手信息。status 字段看你在下列步骤中是用 truncate 清空表还是 软删除。 ———————————— ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shiyiguangnian 发表于 2024-4-16 11:18
选手表 athlete,有如下字段:表id、姓名、等其他信息。
对阵表 competition,有如下字段:表id、status、选手id、对手id(这里的id是 competition 表的另一个表id)、轮次
——————————————————————————————————————
对阵表中 选手id 用的是 athlete 表中的 表id,用 表id 能更快查询选手信息。status 字段看你在下列步骤中是用 truncate 清空表还是 软删除。
————————————————————————————————————————
第1步:定义一个数组 ids,长度为初赛选手的人数+1,因为选手的编号从1开始,
       并且把索引0用空字符串占用。
       查询athlete表,获取athlete表的 id 数组,追加到 ids 后面。
       在获取 athlete表的 id 数组时,可以根据你抽签的逻辑,进行编排选手,
        数组索引即是选手的抽签号,如1~128
第2步:定义一个 Map,key-value 分别是 ids[index1]、index2。
       根据你的对阵逻辑,遍历 ids,可以根据 ids 的索引获取 选手id,对手索引
        并将其添加到 Map 中。
        假设 1 号 对战 128号,Map 插入 (0x123, 128),
        0x123 意思是 athlete 表的一个 表id。
第3步:对阵表此时是空的。遍历 ids,往 competition 表插数据。
        for-i 循环。变量 i 将作为 competition 表的表 id。
        这个 i 其实就是第一轮抽签的编号,注意,从 1 开始遍历,索引0没有意义。
        如第一次遍历,i = 1,插入的数据为 (1,ids[1], Map.get(ids[1]), 8)        
第4步:第一场对决,查询对阵表,表id 就是选手编号。1 号位就是 第一条数据,
        根据 选手id 可以获取选手信息,根据 对手id 知道他对阵的是哪位选手。
        胜出者将其 轮次 更新。
第5步:后面和前四步是差不多的。第5步对应第1步,不过这里查询的是 competition
       筛选条件是 轮次 = 7,也就过滤出了第一轮淘汰赛获胜的选手了。
       也是获取 ids 数组。重新抽签。
第6步:重新定义 Map,重新安排对阵 。
第7步:这里可以直接把对阵表 truncate 掉,也可以通过 update 更新表。也就是
        利用 competition 表的前 64 行。如果不用 truncate,需要给 competition
       表 加个软删除字段 status。在 对决逻辑 中,败方 软删除数据。
       插入 Map 中的数据,同第3步。
第8步:同第4步,后面循环重复步骤即可。
——————————————————————————————
以上是全部步骤了,之前可能是写的有点匆忙,有点乱。非常抱歉
Maxhaha 发表于 2024-4-16 11:58
不是太理解   不修改原数据的情况下   是指的原来有数据?那能不能新增数据表呢?每个人可以理解为都有自己的ID   按照ID进行对阵   只不过ID对应的选手编号和ID不一样   这种形式能接受么?
devilpanama 发表于 2024-4-16 12:41
tl2012 发表于 2024-4-16 14:26
抽签按身份id,排序时按种子选手,重新编号,显示
jyjjf 发表于 2024-4-16 14:39
字段增加一个排序用专用字段,使用按规则生成排序号
 楼主| xiaochenzimo 发表于 2024-4-16 20:18
Maxhaha 发表于 2024-4-16 11:58
不是太理解   不修改原数据的情况下   是指的原来有数据?那能不能新增数据表呢?每个人可以理解为都有自己 ...

原有的数据是参赛选手的名字,如张三抽中128号签就在128签的位置,1对128,现在要让128显示在抽签和对阵图中是显示2号签
 楼主| xiaochenzimo 发表于 2024-4-16 20:18
jyjjf 发表于 2024-4-16 14:39
字段增加一个排序用专用字段,使用按规则生成排序号


原有的数据是参赛选手的名字,如张三抽中128号签就在128签的位置,1对128,现在要让128显示在抽签和对阵图中是显示2号签
 楼主| xiaochenzimo 发表于 2024-4-16 20:19
tl2012 发表于 2024-4-16 14:26
抽签按身份id,排序时按种子选手,重新编号,显示


原有的数据是参赛选手的名字,如张三抽中128号签就在128签的位置,1对128,现在要让128显示在抽签和对阵图中是显示2号签
 楼主| xiaochenzimo 发表于 2024-4-16 20:20
devilpanama 发表于 2024-4-16 12:41
将选手id和排名no区分开

不行,这样原始数据就会出现错乱,因为对阵图是动态生成的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-1 02:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表