Exemplo n.º 1
0
        public void Load(TextReader reader, Difficulty difficulty)
        {
            Difficulty = difficulty;

            Size = GetSize(reader.ReadLine());

            for (int y = 0; y < Size.Height; y++)
            {
                for (int x = 0; x < Size.Width; x++)
                {
                    RoboField field = null;
                    if (y == 0 || x == 0 || y == Size.Height - 1 || x == Size.Width - 1)
                    {
                        field = (difficulty == Difficulty.Hard ?
                                 RoboField.CreateField(FieldType.Hole) : RoboField.DecodeField('p'));
                    }
                    else
                    {
                        char encoded = (char)reader.Read();
                        if (encoded == '\r' || encoded == '\n')
                        {
                            x--;
                            continue;
                        }
                        field = (difficulty == Difficulty.Easy &&
                                 (encoded == RoboField.EncodeField(FieldType.Hole) ||
                                  encoded == RoboField.EncodeField(FieldType.Oil) ||
                                  encoded == RoboField.EncodeField(FieldType.ScrapLeftRight) ||
                                  encoded == RoboField.EncodeField(FieldType.ScrapUpDown))) ?
                                RoboField.DecodeField(' ') :
                                RoboField.DecodeField(encoded);
                    }

                    SetField(field, x, y);
                }
                //new line?!
                if (y > 0 && y < Size.Height - 1)
                {
                    reader.Read();
                }
            }
        }
Exemplo n.º 2
0
 public override string ToString()
 {
     return(RoboField.EncodeField(FieldType).ToString());
 }