Example #1
0
 public ViewModelWall(WallSquare model) : base(model)
 {
     this.model = model;
     this.model.ChangePointX += (sender, square) => PointX = square;
     this.model.ChangePointY += (sender, square) => PointY = square;
 }
Example #2
0
    public void GenerateLevel(int level)
    {
        currLevel = level;
        var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)));
        var fullPath    = new Uri(projectPath + @"\Doolhof\doolhof" + level + ".txt").LocalPath;

        // Bevat het level(speelveld)
        textFile = File.ReadAllLines(fullPath);

        int row    = 0;
        int column = 0;

        char[] squares;
        Square newSquare = null;

        foreach (string line in textFile)
        {
            squares = line.ToCharArray();

            foreach (char square in squares)
            {
                switch (square)
                {
                case '#':
                    newSquare = new WallSquare(row, column);
                    row++;
                    break;

                case '.':
                    newSquare = new NormalSquare(row, column);
                    row++;
                    break;

                case '@':
                    newSquare = new NormalSquare(row, column);
                    newSquare.addMovableObject(Spike);
                    Spike.Square = newSquare;
                    Spike.Square.CalculateShape();
                    row++;
                    break;

                case 'x':
                    newSquare = new GoalSquare(row, column);
                    row++;
                    break;

                case 'o':
                    newSquare = new NormalSquare(row, column);
                    Box box = new Box();
                    newSquare.addMovableObject(box);
                    box.Square = newSquare;
                    box.Square.CalculateShape();
                    Boxes.Add(box);     // add box to the array
                    row++;
                    break;

                case '~':
                    newSquare = new PitFallSquare(row, column);
                    row++;
                    break;

                case '$':
                    newSquare = new NormalSquare(row, column);
                    newSquare.addMovableObject(Collaborator);
                    Collaborator.Square = newSquare;
                    Collaborator.Square.CalculateShape();
                    row++;
                    CollaboratorActive = true;
                    break;

                default:                                           // add empty square
                    PlayField.Add("e" + row + ":" + column, null); // indicate an emty square should be written
                    row++;
                    break;
                } // end switch

                if (newSquare != null)
                {
                    PlayField.Add(newSquare.ID, newSquare);
                }

                newSquare = null;
            } // end for-loop -> for each char in string
            column++;
            row = 0;
            PlayField.Add("n" + row + ":" + column, null); // indicate an enter has to be written
        } // end for-loop -> for each string in string[]
        gameController.PrintField(PlayField);
    }