Communication

communication

基本介绍

与其他动作不同,communication是一个单独的基类,而非继承自AbstractAction

类的介绍

该基类只有一个虚函数excute

使用

可能的使用方式是,为某个位置的球员写一个单独的communication类,该类继承自本文件的communication基类,下面的sample_communication类就是这样的用法。

还需要注意一点,应当只有excute是public的。

sample_communication

基本介绍

该文件包含了一些基本的球员之间交流信息的函数,不过主要还是以演示为主。需要由我们自己去继承后使用。

类的介绍

SampleCommunication类包括几个基本的信息量和一堆实际上的交流函数。

基本信息包括

  • 当前的发送者
  • 下一个发送者
  • 发送的时间
  • 队友发送时间
  • 对手发送时间

交流的函数:非常多,这里列举几个

  • sayBall
  • sayPlayer
  • sayOpponents
  • sayRecovery

但不管是什么say,最终都会调用addSayMessage

重点函数解析

sayGoalie

  • 作用
    • 告诉队友对方守门员的位置与角度信息
  • 流程
    • 获取场上状态和有效的信息长度
    • 调用shouldSayOpponentGoalie(见下方分析)
      • 若真
        • 获取对方守门员信息
        • 确认其位置x and y(通过bound函数)
        • “说”出守门员的unum,pos,body,即数字,位置,身体面向的角度
        • 更新球员的发送时间
        • dlog输出
        • 返回true
      • 若假
        • 返回false
  • 意义
    • 决定是否要告诉队友对方守门员的位置信息
  • 可能的优化方向
    • 当守门员出击时,可通过传达该信息来做球的大范围转移
  • 从librcsc库中调用的内容(给出第四章lib中的链接)
    • PlayerObject
    • addSayMessage
    • bound
  • 涉及的规则

shouldSayOpponentGoalie

  • 流程

    • 获取自身的场上状态和敌方守门员的状态(通过调用getOpponentGoalie
    • 对地方守门员的状态进行判断,判断的内容如下

      • 守门员的bodyCount
      • unum
      • distFromSelf
      • pos中的xabsY
    • 返回true or false来决定是否要说出守门员位置

其他

想法

  • 2022/1/18:我们当前还没怎么用到这个功能,这个方向可以研究研究。

keepaway_communication

基本介绍

文档注释

communication planner for keepaway mode Header File

类的介绍

改类继承自Commmunication基类,除了基本的excute函数,还有两个自己的sayPlanattentiontoSomeone函数。

Copyright@Njupt-Apollo-2d-2021 all right reserved,powered by Gitbook该文件最新修订时间: 2022-02-26 09:05:41

results matching ""

    No results matching ""