目录
总体来说就是在车上已经有伤员的情况下,先去避难所,同时考虑到避难所后也能到达目标位置;如果救护人员受伤,做同样处理(救护人员的自救);如果车上没人又没受伤,则自己去寻找目标,并作出相应处理(挖人,装载,移动)
1开始
首先判断救护车上有没有人,分为以下情况
2.1车上有人
先进行一个判断:是否还需要救援。如果伤员已死或没有受伤,则不需要救援,直接卸载;如果还需救援则不做任何处理,继续往后判断。
3.1车上的人已死或未受伤
得到结果动作:把车上的人卸下。
3.2车上的人受伤
这时一个明确的目标是要移动到避难所。接下来判断当前位置与避难所位置的情况。同时兼顾目标位置,寻找一条路径既能到达避难所又能到达目标位置。下面详细判断:
4.1目标不存在或者车上的人就是目标
目标就在车上,路径规划不用再考虑目标,此时只需考虑救护车位置和避难所位置:
5.1当前位置就是避难所
得到结果动作:把车上的人卸下。
5.2当前位置不是避难所
规划从当前位置到避难所的路径,得到结果动作:通过path移动
4.2目标是区域
5.1救护车和目标处于同一位置
得到结果动作:把车上的人卸下
5.2不在同一位置
生成到目标位置的路径path,并沿该路径移动(目标位置是避难所吗?)
4.3目标是人类
5.1该人类存在
调用calcRefugeAction分析。列出所有的避难所位置。并遍历找到一个避难所的位置,使得既能从当前位置到达避难所又能从这个避难所到达目标位置。
5.2该人类不存在
直接规划路径去避难所
2.2车上没有人
再判是否需要休息
3.1需要休息
此时情况和车上有伤员情况相同,自己就是伤员,第一重要的事是到避难所,然后考虑到达避难所后能不能再到目标位置。调用calcRefugeAction分析。列出所有的避难所位置。并遍历找到一个避难所的位置,使得既能从当前位置到达避难所又能从这个避难所到达目标位置。
3.2不需要休息
不需要休息也没有伤员,说明当前处于自由状态,不需要去避难所。此时的行为是去寻找目标并给予相应的帮助。(此操作为方法calcRescue)
4.1目标是人
5.1在同一位置
如果人被掩埋则把人挖出,如果没有被掩埋则装载上伤员
5.2不在同一位置
规划路径去找目标
4.2目标是建筑
直接规划路径去找目标
4.3目标是路障
???不懂