Files
auto-solution/requirements.md
2026-03-27 10:20:45 +08:00

4.9 KiB
Raw Blame History

1.项目概述

军事沙盘游戏是一个Spring Boot框架若依开发平台前后端分离版 主要为了服务别的服务调用我的接口,我自动生成火力配置,主要是做火力规则。

2.大致需求

我现在需要根据入参的json超级大将近1.3M2w多行使用Drools项目中rule模块已经引入依赖系统完成规则的建立并且每个drl文件中的注释要清楚因为后续要加入WorBench让不懂开发的人员修改我的规则暂时先不用

并且要注意出传入的json如果过大需要注意OOM并且注入Drools中的实体过多也有可能OOM理解整个需求文档之后设计怎么接收参数插入Drools保证不会出现OOM因为传入的JSON总体来说有不少需要用到但是有一些细致的参数可能又不需要匹配上

2.1需求详细:

我需要根据传入的json匹配我的规则然后再json中填写红方任务下的武器、武器参数、部署位置、航迹等位置的数据

2.1.1 允许出现蓝方武器,红方没有应对的武器的情况,证明红方武器不够

2.1.2 允许出现返回的红方任务中的部分json字段为空原样返回因为我的规则不需要把所有数据填上去具体需要填那些我会在第三部分具体规则设计中写出来

2.2 注意事项:

2.2.1 Json很大需要使用流式解析接收时拿到需要的数据具体需要那些参数我会把Json参考文件区域防御场景设计_2026-01-14 11_49_10_带注释放到和本文件同级的位置你自己取阅读决定只要匹配我下方的规则就行

2.2.3 整个火力规则接口的里面需要用到的数据都是传入的json中的没有数据库操作包括输出的json也是传入的json只是需要把json中红方的任务内容填上去允许有规则匹配不上导致参数为空

注释要求:

1.任何注释都不要在行尾进行注释,放在上方

2.实体类的属性注释和方法(函数)内部的注释要使用//,类注释和方法上的注释使用/* */

3.具体规则设计

只需要在json中填写红方任务下的内容具体的规则需要体现在Drools的drl文件中必须添加注释供业务人员修改规则

3.1 需要设计装备匹配的规则主要有装备类型的匹配比如蓝方有空中武器需要根据航迹经纬高来决定我方使用何种武器从json的红方装备拿拿id填写到weaponId上就行在weaponId附近有一个targetId要填写这个武器对应的是蓝方的什么武器其他的参数需要你理解填写上去不理解的不要乱填所有数据都在传入的json中还需要根据蓝方的数量做匹配理论上应该>= 蓝方数量允许出现小于因为红方获取数量武器不够还需要根据威胁等级字段名threatLevel 取值范围1-3来决定使用那些红方武器进行打击

允许你根据传入json蓝方已有条件和红方已有条件设计其他匹配的规则但是要标明注释根据那些参数怎么使用修改

3.2 需要设计阵位的规则根据蓝方的阵位部署红方的武器需要部署在红方的防区和作战区作战区域字段名warTerritory 防区类型字段名airspaceType 3是防区的意思注意必须是红方的防区或者作战区作战区不分红蓝方

3.3 需要设计航迹的规则根据蓝方任务编队的航迹来决定我方任务的航迹可以根据高度、速度、航向角、经纬高等参数设计规则不管使用最短距离算法还是绕后打击算法都可以最好在Drools中提供规则标明怎么使用修改

3.4 需要做任务类型的匹配如果蓝方是干扰任务红方需要根据红方的反干扰武器进行匹配具体匹配可以同3.1的规则,但是任务类型不同

3.5 上述所有规则都需要贴合实际,并且规则中不需要考虑任务的开始结束时间

4.JSON辅助理解

本点是辅助你理解传入的JSON

4.1 Tasks下是蓝红方的所有任务我需要根据蓝方的任务做红方的任务匹配并且匹配红方任务下的武器装备

4.2 RefAttributeObject下是所有武器的参数注意要区分这个武器是蓝方还是红方attDefaultValue字段是这个武器的值attExplain是值的单位

4.3 ScenarioBase和Options这两个我的整个规则系统中不需要关心Environment这个字段里面是环境的配置你自由决定内部参数参不参与规则

4.4 ForceSides用来区分红蓝方Equipments是所有装备注意区分红蓝方

4.5 所有的武器装备参数任务都没有形成直接的上下级结构都是通过id来关联

4.6 taskName不用关心Groups暂时不用关心后续可能会需要