private Field CreateField(char toString)
        {
            var field = new NormalField();
            var items = "1234".ToArray();

            switch (char.ToLower(toString))
            {
            case 'r': return(new RestField());

            case 'n': return(new NormalField());

            case 'f': return(new FinishField());

            case 'w': return(GetWoodField());

            case 'x': return(AddBarricadeToField());

            case var e when items.Contains(e): return(SetupPlayerField(e));
            }

            if (toString == '.')
            {
                return(null);
            }

            return(field);
        }
        private Field AddBarricadeToField()
        {
            BarricadePiece piece = new BarricadePiece();
            NormalField    field = new NormalField();

            field.Pieces.Add(piece);
            piece.PieceField = field;
            // If null create it
            piece.VisitedFields ??= new List <Field>();
            piece.VisitedFields.Add(field);
            BarricadePieces.Add(piece);
            return(field);
        }