コード例 #1
0
ファイル: Data.cs プロジェクト: cantlookaway/Simuro5v5
        /// <summary>
        /// 满足右攻假设,获取双方在*蓝方*视角下的SideInfo
        /// 首先根据当前信息构造SideInfo,然后如果需要的是黄方数据,为了满足右攻假设,进行视角的转换
        /// </summary>
        /// <param name="side"></param>
        /// <returns></returns>
        public SideInfo GetSide(Side side)
        {
            SideInfo si = new SideInfo
            {
                currentBall = Ball,
            };

            Robot[] home = null, opp = null;
            if (side == Side.Blue)
            {
                (home, opp) = (BlueRobots, YellowRobots);
            }
            else if (side == Side.Yellow)
            {
                (home, opp) = (YellowRobots, BlueRobots);
            }
            si.home = (Robot[])home.Clone();
            si.opp  = (from rb in opp
                       select new OpponentRobot {
                pos = rb.pos, rotation = rb.rotation
            }).ToArray();
            if (side == Side.Yellow)
            {
                si.ConvertToAnotherSide();
            }
            si.TickMatch = TickMatch;
            return(si);
        }