コード例 #1
0
        public CheckersWindow()
        {
            this.InitializeComponent();
            board = new CheckersBoard(0, x);
            board.GameMaxLength = 150;
            lastMove = new CheckersMove(null, false, 1);
            moveList.Tag = new List<CheckersMove>();
            myRepaint = new Repaint(this.repaint);
            CheckersPlayer player = new CheckersPlayer(ComputerPlayer);
            alg = new Algorithms(player);
            int blackWhite = 1;
            for (int row = 0; row < 8; ++row)
            {
                for (int col = 0; col < 8; ++col)
                {

                    if (blackWhite % 2 == 0)
                    {
                        BlackSquare square = new BlackSquare();
                        square.SetValue(Grid.ColumnProperty, col);
                        square.SetValue(Grid.RowProperty, row);
                        square.Tag = new System.Windows.Point(row, col);
                        square.DragEnter += new DragEventHandler(square_DragEnter);
                        square.Drop += new DragEventHandler(square_Drop);
                        square.MouseLeftButtonDown += new MouseButtonEventHandler(square_MouseLeftButtonDown);
                        UIBoard.Children.Add(square);
                        blackSquares.Add(square);

                    }
                    else
                    {
                        WhiteSquare square = new WhiteSquare();
                        square.SetValue(Grid.ColumnProperty, col);
                        square.SetValue(Grid.RowProperty, row);
                        UIBoard.Children.Add(square);

                    }
                    blackWhite++;
                }
                blackWhite++;
            }
            StringBuilder stringBuilder = new StringBuilder("Current Player is:\n");
            stringBuilder.Append(board.GetCurrentPlayer().GetPlayerID().ToString() == "-1" ? "Black" : "White");
            currentPlayerLabel.Content = stringBuilder.ToString();
            repaint(null);
            board.GameOver += new CheckersBoard.EndGame(board_GameOver);
            if (board.GetCurrentPlayer().GetPlayerID() == alg.ComputerPlayerID)
            {
                computerThread = new Thread(this.computerMove);
                computerThread.Start();
            }
            this.visualGameOver = new EndGame(this.theGameIsOver);
        }
コード例 #2
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            var cellSize = new Size(10, 10);
            var location = new Point(0, 0);

            for (int i = 0; i < cells.GetLength(0); i++)
            {
                for (int j = 0; j < cells.GetLength(1); j++)
                {
                    var rect  = new Rectangle(location.X + i * cellSize.Width, location.Y + j * cellSize.Height, cellSize.Width, cellSize.Height);
                    var brush = cells[i, j] == 1 ? Brushes.Red : Brushes.White;
                    e.Graphics.FillRectangle(brush, rect);
                    e.Graphics.DrawRectangle(Pens.Black, rect);
                }
            }
            Repaint?.Invoke();
        }
コード例 #3
0
 public ReversiWindow()
 {
     InitializeComponent();
     winnerLabel.Visibility = Visibility.Hidden;
     gameHistory = new List<ReversiBoard>();
     myRepaint = new Repaint(this.repaint);
     board = new ReversiBoard(0);
     ReversiPlayer player = new ReversiPlayer(ComputerPlayer);
     alg = new Algorithms(player);
     intializeVisualBoard();
     this.UpdateLabel += new ReversiWindow.GameOver(updateWinnerLabel);
     upDateGameStatus(-1, -1, 0);
     board.NoLegalMoveAvailable += new ReversiBoard.HasMoves(board_NoLegalMoveAvailable);
     board.GameOver += new ReversiBoard.EndGame(board_GameOver);
     board.MoveComplete += new ReversiBoard.BoardMove(board_MoveComplete);
     if (board.GetCurrentPlayer().GetPlayerID() == alg.ComputerPlayerID)
     {
         computerThread = new Thread(this.computerMove);
         computerThread.Start();
     }
 }