HFUT《机器人技术》第一次作业

C#语言!!

输入数据的不规范

题目: 在机器人足球比赛中,server 和球员 client 之间通过发送字符串来进行信息交互,其 中 server 要把某球员的听觉和视觉信息发送给该球员,信息的格式如下所示: (hear Time Sender Message) (see Time ObjInfo ObjInfo …) 其中 (hear Time Sender Message)的具体含义如下: ➢ Time:前的仿真周期。 ➢ Sender ➢ 如果是其他球员发送的消息,那么是发送者的相当方向(Direction) ➢ self:发送者是自己本人。 ➢ referee:裁判是发送者。 ➢ online_coach_left 或者 online_coach_ringt:发送者是在线教练。 ➢ Message:消息内容。 (see Time ObjInfo ObjInfo …)的具体含义如下: ➢ Time:当前时间。 ➢ ObjInfo 表示了可视对象的信息。其格式为: (ObjName Direction Distance DirChng DistChng BodyDir HeadDir)  ObjName = (player Teamname Unum) ➢ |(goal Side) ➢ |(ball) ➢ |(flag c) ➢ |(flag [ l | c | r] [ t | b ]) ➢ |(flag p [ l | r] [ t | c | b ]) ➢ |(flag [ t | b] [ l | r ] [10 | 20 | 30 | 40 |50 ]) ➢ |(flag [ l | r] [ t | b ] [10 | 20 | 30 ]) ➢ |(flag [ l | r | t | b ] 0) ➢ |(line [ l | r | t | b ])  Direction,Distance 表示目标的相对距离和相对方向  DirChng 和 DistChng 分别表示目标距离和方向的相对变化,如果是固 定物体(球和球员以外的所有对象)则没有改项值  BodyDir 和 HeadDir,分别是被观察球员相对观察者的身体和头部的 相对角度,只有是球队对象才有这一项值。 要求:编写程序解析球员所看到和听到的信息。 示例:(hear 1022 -30 passto(23,24))(see 1022 ((ball) -20 20 1 -2) ((player hfut1 2) 45 23 0.5 1 22 40 ) ((goal r) 12 20) ((Line r) -30)) 输出: 在 1022 周期 hear 从 -30 方向 听到了 passto(23,24); 在 1022 周期 see Ball 距离我的 Direction 是 -20, Distance 是 20,DistChng 是 1,DirChng 是-2;player hfut 2 距离我的 Direction 是 45, Distance 是 23,DistChng 是 0.5,DirChng 是 1,它的 BodyDir 是 22 和 HeadDir 是 44;goal r 距离我的 Direction 是 12,Distance 是 20。 Line r 和我的角度是-30 度 一些参考建议: 场上对象: (f r b 10)表示场上某个点,具体见教材 28 页,教材上写的是(flag r b 10), 大家写程序的时候以 f 为准。 本示例中左右 2 边的名称分别为 hfut1 和 hfut2, 大家写程序的时候 hfut1 的球员信 息存储在在队友里面,hfut2 存储在对手里面。 对象的参考名称如下: OBJECT_BALL, /*!< Ball */ OBJECT_GOAL_L, /*!< Left goal */ // 2 goals OBJECT_GOAL_R, /*!< Right goal */ OBJECT_LINE_L, /*!< Left line */ // 4 lines OBJECT_LINE_R, /*!< Right line */ OBJECT_LINE_B, /*!< Bottom line */ OBJECT_LINE_T, /*!< Top line */ OBJECT_FLAG_L_T, /*!< Flag left top */ // 53 flags OBJECT_FLAG_T_L_50, /*!< Flag top left 50 */ OBJECT_FLAG_T_L_40, /*!< Flag top left 40 */ OBJECT_FLAG_T_L_30, /*!< Flag top left 30 */ OBJECT_FLAG_T_L_20, /*!< Flag top left 20 */ OBJECT_FLAG_T_L_10, /*!< Flag top left 10 */ OBJECT_FLAG_T_0, /*!< Flag top left 0 */ OBJECT_FLAG_C_T, /*!< Flag top center */ OBJECT_FLAG_T_R_10, /*!< Flag top right 10 */ OBJECT_FLAG_T_R_20, /*!< Flag top right 20 */ OBJECT_FLAG_T_R_30, /*!< Flag top right 30 */ OBJECT_FLAG_T_R_40, /*!< Flag top right 40 */ OBJECT_FLAG_T_R_50, /*!< Flag top right 50 */ OBJECT_FLAG_R_T, /*!< Flag right top */ OBJECT_FLAG_R_T_30, /*!< Flag right top 30 */ OBJECT_FLAG_R_T_20, /*!< Flag right top 20 */ OBJECT_FLAG_R_T_10, /*!< Flag right

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值