示例#1
0
        public object Clone()
        {
            var clone = new TetriBricksGame();
            foreach (BrickColumn bc in Columns)
            {
                var bcClone = new BrickColumn();
                foreach (Brick b in bc.Bricks)
                {
                    var bClone = new Brick(b.Row, b.Column, b.Color);
                    bcClone.Bricks.Add(bClone);
                }
                clone.Columns.Add(bcClone);
            }

            return clone;
        }
        public void CreateNewGame(int rows, int columns)
        {
            _moveHistory.Clear();

            var game = new TetriBricksGame();

            for (int i = 0; i < rows; i++)
            {
                var bc = new BrickColumn();
                //bc.Game = game;
                for (int j = 0; j < columns; j++)
                {
                    bc.Bricks.Add(new Brick(i, j, GetRandomColor()));
                }
                game.Columns.Add(bc);
            }
            _moveHistory.Add((TetriBricksGame) game.Clone());
            _currentMove = 0;
        }
示例#3
0
        private void DisplayGame(TetriBricksGame game)
        {
            _currentScore = game.Score;

            gridPuzzle.RenderTransform = null;
            gridPuzzle.Children.Clear();

            game.Columns.ForEach(brickColumn =>
                                     {
                                         var stackPanel = new StackPanel {Orientation = Orientation.Vertical};
                                         brickColumn.Bricks.ForEach(brick =>
                                                                        {
                                                                            var lbl = new Rectangle
                                                                                          {
                                                                                              Margin = new Thickness(2),
                                                                                              MinHeight = 20,
                                                                                              MinWidth = 20,
                                                                                              Opacity = 0.8,
                                                                                              Tag = brick,
                                                                                              Fill =
                                                                                                  new SolidColorBrush(
                                                                                                  brick.Color)
                                                                                          };
                                                                            lbl.MouseEnter += lbl_MouseEnter;
                                                                            lbl.MouseLeave += lbl_MouseLeave;
                                                                            lbl.MouseLeftButtonDown +=
                                                                                lbl_MouseLeftButtonDown;
                                                                            stackPanel.Children.Add(lbl);
                                                                        }
                                             );
                                         gridPuzzle.Children.Add(stackPanel);
                                     }
                );

            var rotate = new RotateTransform {Angle = (-180)};
            gridPuzzle.RenderTransformOrigin = new Point(0.5, 0.5);
            gridPuzzle.RenderTransform = rotate;

            UpdateScores();
        }