コード例 #1
0
        public override ReturnStatus Tick()
        {
            if (board.ScannedRobot.Distance > 200 && !isMoving)
            {
                board.SetRobotColor(System.Drawing.Color.Black);
                isMoving = true;

                //Random Move offset
                Random r = new Random();
                int    randomRotation = r.Next(-10, 10);

                board.Robot.TurnRight(board.ScannedRobot.Bearing + randomRotation);
                board.Robot.Ahead(board.ScannedRobot.Distance / 2);

                return(ReturnStatus.Running);
            }
            else
            {
                isMoving = false;
                if (board.ScannedRobot.Distance > 100)
                {
                    board.Robot.TurnRight(board.ScannedRobot.Bearing);
                    board.Robot.Ahead(board.ScannedRobot.Distance);
                    return(ReturnStatus.Failure);
                }
                else
                {
                    board.Robot.Scan();
                    return(ReturnStatus.Success);
                }
            }
        }
コード例 #2
0
        public override ReturnStatus Tick()
        {
            if (board.ScannedRobot == null && board.ScannedRobot.Distance > 100)
            {
                return(ReturnStatus.Failure);
            }

            if (Math.Abs(board.GunBearingAngle()) > 5 && !isRotating)
            {
                board.SetRobotColor(System.Drawing.Color.DarkRed);
                isRotating = true;

                board.Robot.TurnRadarRight(board.RadarBearingAngle());
                board.Robot.TurnRight(board.ScannedRobot.Bearing);

                return(ReturnStatus.Running);
            }
            else
            {
                isRotating = false;
                return(ReturnStatus.Success);
            }
        }