コード例 #1
0
        /// <summary>
        /// Serializing cleaning robot state
        /// </summary>
        public void Serialize(CleaningRobotState cleaningRobotState, string outputFileName)
        {
            CleaningRobotForJson robotJson = new CleaningRobotForJson();

            // Sorting lists by attributes
            robotJson.visited = ((List <RoomMapPoint>)cleaningRobotState.MapPointsVisited)
                                .OrderBy(l => l.X).ThenBy(l => l.Y).ToList();
            robotJson.cleaned = ((List <RoomMapPoint>)cleaningRobotState.MapPointsCleaned)
                                .OrderBy(l => l.X).ThenBy(l => l.Y).ToList();

            robotJson.final.X = cleaningRobotState.Location.X;
            robotJson.final.Y = cleaningRobotState.Location.Y;
            robotJson.battery = cleaningRobotState.Battery;

            // Facing
            string facing = "";

            switch (cleaningRobotState.Facing)
            {
            case CleaningRobotFacing.North:
                facing = "N";
                break;

            case CleaningRobotFacing.East:
                facing = "E";
                break;

            case CleaningRobotFacing.South:
                facing = "S";
                break;

            case CleaningRobotFacing.West:
                facing = "W";
                break;
            }
            robotJson.final.facing = facing;

            // Write file
            string output = JsonConvert.SerializeObject(robotJson, Formatting.Indented);

            File.WriteAllText(outputFileName, output);
        }
コード例 #2
0
 /// <summary>
 /// Loading robot state from file
 /// </summary>
 public void Load(string inputFileName)
 {
     _state = _serializer.Deserialize(inputFileName);
 }