public bool Serialize(object singleMore, out string serializedSingleMore)
 {
     // this is use in RobotStateCommand (DEFAULT) in array (DEFAULT.NEXT) => separator for arrays items is DEAULT.NEXT.NEXT
     Base[] o = singleMore as Base[];
     if (o != null)
     {
         StringBuilder sb = new StringBuilder();
         if (0 < o.Length)
         {
             sb.Append("[");
         }
         for (int i = 0; i < o.Length; i++)
         {
             sb.Append(ProtocolV1_0Utils.ConvertToDeeper(ProtocolV1_0Utils.SerializeParams(COMMAND_BASE_NAME, (ProtocolDouble)o[i].X, (ProtocolDouble)o[i].Y, o[i].MAX_PROGRESS, o[i].Progress, o[i].TeamId, o[i].ProgressTeamId),
                                                         ProtocolV1_0Utils.DEFAULT.NEXT.NEXT.NEXT));
             if (i + 1 < o.Length)
             {
                 sb.Append(ProtocolV1_0Utils.DEFAULT.NEXT.NEXT.SEPARATOR);
             }
         }
         if (0 < o.Length)
         {
             sb.Append("]");
         }
         serializedSingleMore = sb.ToString();
         return(true);
     }
     serializedSingleMore = null;
     return(false);
 }
Exemple #2
0
 public static bool Deserialize(string orig, Deep deep, out MineGunV1_0 deserialized)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(orig, NAME, deep, out rest))
     {
         if (rest.Length == 4)
         {
             int[]    paramsInt;
             string[] zonesString;
             if (Parser.TryParse(new int[] { 0, 1, 2 }, rest, out paramsInt) &&
                 ProtocolV1_0Utils.Deserialize(rest[3], out zonesString, deep.NEXT))
             {
                 ZoneV1_0[] zones = new ZoneV1_0[zonesString.Length];
                 for (int i = 0; i < zones.Length; i++)
                 {
                     if (!ZoneV1_0.Deserialize(zonesString[i], deep.NEXT.NEXT, out zones[i]))
                     {
                         deserialized = null;
                         return(false);
                     }
                 }
                 deserialized = new MineGunV1_0(paramsInt[0], paramsInt[1], paramsInt[2], zones);
                 return(true);
             }
         }
     }
     deserialized = null;
     return(false);
 }
Exemple #3
0
            public bool Serialize(object singleMore, out string serializedSingleMore)
            {
                // this is use in RobotStateCommand (DEFAULT) in array (DEFAULT.NEXT) => separator for arrays items is DEAULT.NEXT.NEXT
                IObstacle[] o = singleMore as IObstacle[];
                if (o != null)
                {
                    StringBuilder sb = new StringBuilder();
                    if (0 < o.Length)
                    {
                        sb.Append("[");
                    }
                    for (int i = 0; i < o.Length; i++)
                    {
                        sb.Append(ProtocolV1_0Utils.ConvertToDeeper(OBSTACLE_FACTORIES.Serialize(o[i]),
                                                                    ProtocolV1_0Utils.DEFAULT.NEXT.NEXT.NEXT));
                        if (i + 1 < o.Length)
                        {
                            sb.Append(ProtocolV1_0Utils.DEFAULT.NEXT.NEXT.SEPARATOR);
                        }
                    }
                    if (0 < o.Length)
                    {
                        sb.Append("]");
                    }
                    serializedSingleMore = sb.ToString();
                    return(true);
                }

                serializedSingleMore = null;
                return(false);
            }
            public override bool IsDeserializeable(string s)
            {
                s = s.Trim();
                string[] rest;
                if (ProtocolV1_0Utils.GetParams(s, "INIT_ANSWER", out rest))
                {
                    if (rest.Length == 9)
                    {
                        int[] param;
                        if (Parser.TryParse(new ArraySegment <string>(rest, 0, 8), out param))
                        {
                            InitAnswerCommandV1_0 initAnswer = new InitAnswerCommandV1_0(param[0], param[1], param[2], param[3], param[4],
                                                                                         param[5], param[6], param[7]);



                            string[] moreString;
                            if (ProtocolV1_0Utils.Deserialize(rest[8], out moreString, ProtocolV1_0Utils.DEFAULT.NEXT))
                            {
                                initAnswer.DeserializeMore(moreString, initAnswer.MORE, SUB_COMMAND_FACTORIES);
                            }
                            cache.Cached(s, initAnswer);
                            return(true);
                        }
                    }
                }
                return(false);
            }
        public string Serialize()
        {
            EndLapCommandV1_0 endLapCommand = null;

            if (END_LAP_COMMAND != null)
            {
                endLapCommand = (EndLapCommandV1_0)EndLapCommandV1_0.FACTORY.Transfer(this.END_LAP_COMMAND);
            }
            return(ProtocolV1_0Utils.SerializeParams(COMMAND_NAME, (ProtocolDouble)X, (ProtocolDouble)Y, HIT_POINTS, (ProtocolDouble)POWER, TURN, MAX_TURN, COUNT_OF_LIFE_ROBOTS, ARRAY_IDS_OF_LIFE_ROBOTS, endLapCommand, SerializeMore(SUB_COMMAND_FACTORIES)));
        }
Exemple #6
0
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest))
     {
         cache.Cached(s, new PutMineCommandV1_0());
         return(true);
     }
     return(false);
 }
Exemple #7
0
            public override bool IsSerializable(IObstacle c)
            {
                Sand c2 = c as Sand;

                if (c2 != null)
                {
                    cacheForSerialize.Cached(c, ProtocolV1_0Utils.SerializeParams(COMMAND_NAME, c2.X, c2.Y));
                    return(true);
                }
                return(false);
            }
Exemple #8
0
            public bool Deserialize(string s, object[] commandsMore)
            {
                String rest;

                if (ProtocolV1_0Utils.GetParams(s, COMMAND_NAME, out rest))
                {
                    String[] obtaclesString;
                    ProtocolV1_0Utils.Deserialize(rest, out obtaclesString, ProtocolV1_0Utils.DEFAULT.NEXT.NEXT);
                }
                return(false);
            }
Exemple #9
0
            public override bool IsSerializable(IObstacle c)
            {
                Wall c2 = c as Wall;

                if (c2 != null)
                {
                    string serialized = ProtocolV1_0Utils.SerializeParams(COMMAND_NAME, c2.Y, c2.X);
                    cacheForSerialize.Cached(c, serialized);
                    return(true);
                }
                return(false);
            }
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest) && rest.Length == 1)
     {
         if (rest[0].Equals("0") || rest[0].Equals("1"))
         {
             cache.Cached(s, new RepairAnswerCommandV1_0(rest[0].Equals("1")));
             return(true);
         }
     }
     return(false);
 }
Exemple #11
0
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest))
     {
         int param1; GameType param2;
         if (rest.Length == 2 && int.TryParse(rest[0], out param1) && Enum.TryParse(rest[1], true, out param2))
         {
             cache.Cached(s, new GameTypeCommandV1_0(param1, param2));
             return(true);
         }
     }
     return(false);
 }
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest) && rest.Length == 1)
     {
         int mineId;
         if (int.TryParse(rest[0], out mineId))
         {
             cache.Cached(s, new DetonateMineCommandV1_0(mineId));
             return(true);
         }
     }
     return(false);
 }
            public override Boolean IsDeserializable(String s)
            {
                string rest;

                if (ProtocolV1_0Utils.GetParams(s, NAME, out rest))
                {
                    if (rest.Equals("1") || rest.Equals("0"))
                    {
                        cache.Cached(s, new DriveAnswerCommandV1_0(rest.Equals("1")));
                        return(true);
                    }
                }
                return(false);
            }
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest))
     {
         ProtocolDouble angle, range;
         if (ProtocolDouble.TryParse(rest[0], out range) && ProtocolDouble.TryParse(rest[1], out angle))
         {
             cache.Cached(s, new ShootCommandV10(range, angle));
             return(true);
         }
     }
     return(false);
 }
Exemple #15
0
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, COMMAND_NAME, out rest))
     {
         int x, y;
         if (rest.Length == 2 && int.TryParse(rest[0], out x) && int.TryParse(rest[1], out y))
         {
             cache.Cached(s, new Wall(x, y));
             return(true);
         }
     }
     return(false);
 }
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, out rest))
     {
         ProtocolDouble[] param;
         if (rest.Length == 2 && Parser.TryParse(rest, out param))
         {
             cache.Cached(s, new DriveCommandV1_0(param[0], param[1]));
             return(true);
         }
     }
     return(false);
 }
Exemple #17
0
 public override bool IsDeserializeable(string s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, COMMAND_NAME, out rest) && rest.Length == 3)
     {
         RobotType robotType;
         if (Enum.TryParse(rest[2], true, out robotType))
         {
             InitCommandV1_0 init = new InitCommandV1_0(rest[0], rest[1], robotType);
             cache.Cached(s, init);
             return(true);
         }
     }
     return(false);
 }
Exemple #18
0
 public static bool Deserialize(string orig, Deep deep, out ZoneV1_0 deserialized)
 {
     string[] rest;
     int[]    param;
     if (ProtocolV1_0Utils.GetParams(orig, NAME, deep, out rest))
     {
         if (rest.Length == 2 && Parser.TryParse(rest, out param))
         {
             deserialized = new ZoneV1_0(param[0], param[1]);
             return(true);
         }
     }
     deserialized = null;
     return(false);
 }
 public override Boolean IsDeserializable(String s)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, COMMAND_NAME, out rest))
     {
         if (rest.Length == 2)
         {
             int x, y;
             if (int.TryParse(rest[0], out x) && int.TryParse(rest[1], out y))
             {
                 cache.Cached(s, new OuterShildingV1_0(x, y));
             }
         }
     }
     return(false);
 }
 public static bool Deserialize(String orig, Deep deep, out ArmorV1_0 deserialized)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(orig, NAME, deep, out rest))
     {
         if (rest.Length == 3)
         {
             int[] paramsInt;
             if (Parser.TryParse(rest, out paramsInt))
             {
                 deserialized = new ArmorV1_0(paramsInt[0], paramsInt[1], paramsInt[2]);
                 return(true);
             }
         }
     }
     deserialized = null;
     return(false);
 }
Exemple #21
0
 public static bool Deserialize(String orig, Deep deep, out MotorV1_0 deserialized)
 {
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(orig, NAME, deep, out rest))
     {
         if (rest.Length == 7)
         {
             ProtocolDouble[] paramsDouble;
             int[]            paramsInt;
             if (Parser.TryParse(new int[] { 0, 1, 2, 3, 4 }, rest, out paramsDouble) &&
                 Parser.TryParse(new int[] { 5, 6 }, rest, out paramsInt))
             {
                 deserialized = new MotorV1_0(paramsDouble[0], paramsDouble[1], paramsDouble[2], paramsDouble[3], paramsDouble[4], paramsInt[0], paramsInt[1]);
                 return(true);
             }
         }
     }
     deserialized = null;
     return(false);
 }
Exemple #22
0
        public static bool Deserialize(string orig, Deep deep, out EndLapCommandV1_0 deserialized)
        {
            string[] rest;
            if (ProtocolV1_0Utils.GetParams(orig, COMMAND_NAME, deep, out rest))
            {
                if (rest.Length == 3)
                {
                    int      gold, score;
                    LapState lapState;

                    if (Enum.TryParse(rest[0], true, out lapState) && int.TryParse(rest[1], out gold) && int.TryParse(rest[2], out score))
                    {
                        deserialized = new EndLapCommandV1_0(lapState, gold, score);
                        return(true);
                    }
                }
            }
            deserialized = null;
            return(false);
        }
 public override bool IsDeserializeable(string s)
 {
     s = s.Trim();
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, ProtocolV1_0Utils.DEFAULT, out rest))
     {
         if (rest.Length == 1 && ProtocolV1_0Utils.Deserialize(rest[0], out rest, ProtocolV1_0Utils.DEFAULT.NEXT))
         {
             GunV1_0[] guns = new GunV1_0[rest.Length];
             for (int i = 0; i < guns.Length; i++)
             {
                 if (!GunV1_0.Deserialize(rest[i], ProtocolV1_0Utils.DEFAULT.NEXT.NEXT, out guns[i]))
                 {
                     return(false);
                 }
             }
             cache.Cached(s, new GetGunsAnswerCommandV1_0(guns));
             return(true);
         }
     }
     return(false);
 }
 public override Boolean IsDeserializable(String s)
 {
     s = s.Trim();
     string[] rest;
     if (ProtocolV1_0Utils.GetParams(s, NAME, ProtocolV1_0Utils.DEFAULT, out rest))
     {
         if (rest.Length == 1 && ProtocolV1_0Utils.Deserialize(rest[0], out rest, ProtocolV1_0Utils.DEFAULT.NEXT))
         {
             MotorV1_0[] motors = new MotorV1_0[rest.Length];
             for (int i = 0; i < motors.Length; i++)
             {
                 if (!MotorV1_0.Deserialize(rest[i], ProtocolV1_0Utils.DEFAULT.NEXT.NEXT, out motors[i]))
                 {
                     return(false);
                 }
             }
             cache.Cached(s, new GetMotorsAnwerCommandV1_0(motors));
             return(true);
         }
     }
     return(false);
 }
Exemple #25
0
            public bool Deserialize(string s, object[] commandsMore)
            {
                string[] obtaclesString;
                if (ProtocolV1_0Utils.Deserialize(s, out obtaclesString, ProtocolV1_0Utils.DEFAULT.NEXT.NEXT))
                {
                    List <IObstacle> obtacles = new List <IObstacle>();
                    foreach (var obtacleString in obtaclesString)
                    {
                        string obtacleStringDefaultDeep = obtacleString;                                   // parametrs is separated by DEFAULT.NEXT.NEXT
                        obtacleStringDefaultDeep = ProtocolV1_0Utils.ConvertToShallowly(obtacleString, 3); // parametrs is separated by DEFAULT.NEXT
                        IObstacle o = OBSTACLE_FACTORIES.Deserialize(obtacleStringDefaultDeep);
                        if (o != default(IObstacle))
                        {
                            obtacles.Add(o);
                        }
                    }
                    commandsMore[COMMAND_MORE_OBTACLES_POSITION] = obtacles.ToArray();
                    return(true);
                }

                return(false);
            }
            public bool Deserialize(string s, object[] commandsMore)
            {
                string[] basesString;
                if (ProtocolV1_0Utils.Deserialize(s, out basesString, ProtocolV1_0Utils.DEFAULT.NEXT.NEXT))
                {
                    List <Base> bases = new List <Base>();
                    foreach (var baseString in basesString)  // parametrs are separated by DEFAULT.NEXT.NEXT.NEXT
                    {
                        string[] baseParam;

                        if (ProtocolV1_0Utils.GetParams(baseString, COMMAND_BASE_NAME,
                                                        ProtocolV1_0Utils.DEFAULT.NEXT.NEXT.NEXT, out baseParam))
                        {
                            if (baseParam.Length == 6)
                            {
                                ProtocolDouble x, y;
                                int            maxProgress, teamId, progress, progressTeamId;
                                if (ProtocolDouble.TryParse(baseParam[0], out x) &&
                                    ProtocolDouble.TryParse(baseParam[1], out y) &&
                                    int.TryParse(baseParam[2], out maxProgress) &&
                                    int.TryParse(baseParam[3], out progress) &&
                                    int.TryParse(baseParam[4], out teamId) &&
                                    int.TryParse(baseParam[5], out progressTeamId))
                                {
                                    Base @base = new Base(x, y, maxProgress);
                                    @base.Progress       = progress;
                                    @base.TeamId         = teamId;
                                    @base.ProgressTeamId = progressTeamId;

                                    bases.Add(@base);
                                }
                            }
                        }
                    }
                    commandsMore[POSITION_IN_ROBOT_STATE_COMMAND] = bases.ToArray();
                }
                return(false);
            }
            public override bool IsDeserializeable(string s)
            {
                string[] rest;
                if (ProtocolV1_0Utils.GetParams(s, COMMAND_NAME, out rest))
                {
                    if (rest.Length == 10)
                    {
                        ProtocolDouble[] paramsPDoubles;
                        int[]            paramInts;
                        int[]            arrayIdsOfLifeRobots;

                        if (Parser.TryParse(new int[] { 0, 1, 3 }, rest, out paramsPDoubles) &&
                            Parser.TryParse(new int[] { 2, 4, 5, 6 }, rest, out paramInts) &&
                            ProtocolV1_0Utils.Deserialize(rest[7], out arrayIdsOfLifeRobots, ProtocolV1_0Utils.DEFAULT.NEXT)
                            )
                        {
                            EndLapCommandV1_0 endLapCommand;
                            EndLapCommandV1_0.Deserialize(rest[8], ProtocolV1_0Utils.DEFAULT.NEXT, out endLapCommand);

                            RobotStateCommandV1_0 robotStateCommand = new RobotStateCommandV1_0(paramsPDoubles[0], paramsPDoubles[1],
                                                                                                paramInts[0], paramsPDoubles[2],
                                                                                                paramInts[1], paramInts[2],
                                                                                                paramInts[3],
                                                                                                arrayIdsOfLifeRobots, endLapCommand);
                            string[] moreString;
                            if (ProtocolV1_0Utils.Deserialize(rest[9], out moreString, ProtocolV1_0Utils.DEFAULT.NEXT))
                            {
                                robotStateCommand.DeserializeMore(moreString, robotStateCommand.MORE, SUB_COMMAND_FACTORIES);
                            }
                            cache.Cached(s, robotStateCommand);
                            return(true);
                        }
                    }
                }
                return(false);
            }
Exemple #28
0
 public string Serialize(Deep deep)
 {
     return(ProtocolV1_0Utils.SerializeParams(NAME, deep, ID, COST, MAX_MINES, ZONES));
 }
 public string Serialize()
 {
     return(ProtocolV1_0Utils.SerializeParams(NAME, ProtocolV1_0Utils.DEFAULT, new object[] { GUNS }));
 }
 public bool Deserialize(string s, object[] commandsMore)
 {
     if (ProtocolV1_0Utils.Deserialize(s, out string[] basesString, ProtocolV1_0Utils.DEFAULT.NEXT.NEXT))