示例#1
0
        public static List <Tank> createEnemyTanks(string rawEnemyTankData)
        {
            List <Tank> myTanks = new List <Tank>();

            string[] splitTankData = rawEnemyTankData.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

            foreach (string individualTankData in splitTankData)
            {
                if (!individualTankData.StartsWith("othertank"))
                {
                    continue;
                }

                string[] tokens = individualTankData.Split(null);

                //othertank [callsign] [color] [status] [flag] [x] [y] [angle]
                string    callsign = tokens[1];
                string    color    = tokens[2];
                string    status   = tokens[3];
                FlagColor flag     = Flag.ParseFlagColor(tokens[4]);
                double    xPos     = double.Parse(tokens[5]);
                double    yPos     = double.Parse(tokens[6]);
                double    angle    = double.Parse(tokens[7]);

                bool hasFlag = false;
                //convert flag status to bool
                if (flag != FlagColor.None)
                {
                    hasFlag = true;
                }


                //convert status to enum
                TANK_STATUS enumStatus = TANK_STATUS.ALIVE;
                if (status == "alive")
                {
                    enumStatus = TANK_STATUS.ALIVE;
                }
                else if (status == "dead")
                {
                    enumStatus = TANK_STATUS.DEAD;
                }

                //create tank, add it to myTanks
                Tank tempTank = new Tank()
                {
                    _isEnemy   = true,
                    _callsign  = callsign,
                    _status    = enumStatus,
                    _xPosition = xPos,
                    _yPosition = yPos,
                    _angle     = angle,
                    _hasFlag   = hasFlag
                };

                myTanks.Add(tempTank);
            }



            return(myTanks);
        }
示例#2
0
        public static List <Tank> createMyTanks(string rawTanksData)
        {
            List <Tank> myTanks = new List <Tank>();

            string[] splitTankData = rawTanksData.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

            foreach (string individualTankData in splitTankData)
            {
                if (!individualTankData.StartsWith("mytank"))
                {
                    continue;
                }

                string[] tokens = individualTankData.Split(null);

                int       tankIndex      = int.Parse(tokens[1]);
                string    callsign       = tokens[2];
                string    status         = tokens[3];
                int       shotsAvailable = int.Parse(tokens[4]);
                double    timeToReload   = double.Parse(tokens[5]);
                FlagColor flag           = Flag.ParseFlagColor(tokens[6]);
                double    xPos           = double.Parse(tokens[34]);
                double    yPos           = double.Parse(tokens[35]);
                double    angle          = double.Parse(tokens[36]);
                double    velocityX      = double.Parse(tokens[37]);
                double    velocityY      = double.Parse(tokens[38]);
                double    angleVelocity  = double.Parse(tokens[39]);

                bool hasFlag = false;
                //convert flag status to bool
                if (flag != FlagColor.None)
                {
                    hasFlag = true;
                }


                //convert status to enum
                TANK_STATUS enumStatus = TANK_STATUS.ALIVE;
                if (status == "alive")
                {
                    enumStatus = TANK_STATUS.ALIVE;
                }
                else if (status == "dead")
                {
                    enumStatus = TANK_STATUS.DEAD;
                }


                //create tank, add it to myTanks
                Tank tempTank = new Tank()
                {
                    _isEnemy        = false,
                    _index          = tankIndex,
                    _callsign       = callsign,
                    _status         = enumStatus,
                    _shotsAvailable = shotsAvailable,
                    _timeToReload   = timeToReload,
                    _xPosition      = xPos,
                    _yPosition      = yPos,
                    _angle          = angle,
                    _velocityX      = velocityX,
                    _velocityY      = velocityY,
                    _angelVelocity  = angleVelocity,
                    _hasFlag        = hasFlag
                };

                myTanks.Add(tempTank);
            }
            return(myTanks);
        }