public void CreatePossibleMovesPoolForComputer(Board i_Board)
        {
            Move move;

            m_MovesArray = new List<Move>();
            for (int i = 0; i < i_Board.BoardSize; i++)
            {
                for (int j = 0; j < i_Board.BoardSize; j++)
                {
                    if (i_Board.GetBoard[i, j].Equals("O") || i_Board.GetBoard[i, j].Equals("U"))
                    {
                        if (i + 2 < i_Board.BoardSize && j - 2 >= 0)
                        {
                            if (IsValidMove(i_Board, i, j, i + 2, j - 2))
                            {
                                move = new Move(i, j, i + 2, j - 2);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 2 < i_Board.BoardSize && j + 2 < i_Board.BoardSize)
                        {
                            if (IsValidMove(i_Board, i, j, i + 2, j + 2))
                            {
                                move = new Move(i, j, i + 2, j + 2);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 1 < i_Board.BoardSize && j + 1 < i_Board.BoardSize)
                        {
                            if (IsValidMove(i_Board, i, j, i + 1, j + 1))
                            {
                                move = new Move(i, j, i + 1, j + 1);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 1 < i_Board.BoardSize && j - 1 >= 0)
                        {
                            if (IsValidMove(i_Board, i, j, i + 1, j - 1))
                            {
                                move = new Move(i, j, i + 1, j - 1);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i_Board.GetBoard[i, j].Equals("U"))
                        {
                            if (i - 2 >= 0 && j - 2 >= 0)
                            {
                                if (IsValidMove(i_Board, i, j, i - 2, j - 2))
                                {
                                    move = new Move(i, j, i - 2, j - 2);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 2 >= 0 && j + 2 < i_Board.BoardSize)
                            {
                                if (IsValidMove(i_Board, i, j, i - 2, j + 2))
                                {
                                    move = new Move(i, j, i - 2, j + 2);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 1 >= 0 && j - 1 >= 0)
                            {
                                if (IsValidMove(i_Board, i, j, i - 1, j - 1))
                                {
                                    move = new Move(i, j, i - 1, j - 1);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 1 >= 0 && j + 1 < i_Board.BoardSize)
                            {
                                if (IsValidMove(i_Board, i, j, i - 1, j + 1))
                                {
                                    move = new Move(i, j, i - 1, j + 1);
                                    m_MovesArray.Add(move);
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
        public void CreatePossibleMovesPoolForComputer(Board i_Board)
        {
            Move move;

            m_MovesArray = new List <Move>();
            for (int i = 0; i < i_Board.BoardSize; i++)
            {
                for (int j = 0; j < i_Board.BoardSize; j++)
                {
                    if (i_Board.GetBoard[i, j].Equals("O") || i_Board.GetBoard[i, j].Equals("U"))
                    {
                        if (i + 2 < i_Board.BoardSize && j - 2 >= 0)
                        {
                            if (IsValidMove(i_Board, i, j, i + 2, j - 2))
                            {
                                move = new Move(i, j, i + 2, j - 2);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 2 < i_Board.BoardSize && j + 2 < i_Board.BoardSize)
                        {
                            if (IsValidMove(i_Board, i, j, i + 2, j + 2))
                            {
                                move = new Move(i, j, i + 2, j + 2);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 1 < i_Board.BoardSize && j + 1 < i_Board.BoardSize)
                        {
                            if (IsValidMove(i_Board, i, j, i + 1, j + 1))
                            {
                                move = new Move(i, j, i + 1, j + 1);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i + 1 < i_Board.BoardSize && j - 1 >= 0)
                        {
                            if (IsValidMove(i_Board, i, j, i + 1, j - 1))
                            {
                                move = new Move(i, j, i + 1, j - 1);
                                m_MovesArray.Add(move);
                            }
                        }

                        if (i_Board.GetBoard[i, j].Equals("U"))
                        {
                            if (i - 2 >= 0 && j - 2 >= 0)
                            {
                                if (IsValidMove(i_Board, i, j, i - 2, j - 2))
                                {
                                    move = new Move(i, j, i - 2, j - 2);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 2 >= 0 && j + 2 < i_Board.BoardSize)
                            {
                                if (IsValidMove(i_Board, i, j, i - 2, j + 2))
                                {
                                    move = new Move(i, j, i - 2, j + 2);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 1 >= 0 && j - 1 >= 0)
                            {
                                if (IsValidMove(i_Board, i, j, i - 1, j - 1))
                                {
                                    move = new Move(i, j, i - 1, j - 1);
                                    m_MovesArray.Add(move);
                                }
                            }

                            if (i - 1 >= 0 && j + 1 < i_Board.BoardSize)
                            {
                                if (IsValidMove(i_Board, i, j, i - 1, j + 1))
                                {
                                    move = new Move(i, j, i - 1, j + 1);
                                    m_MovesArray.Add(move);
                                }
                            }
                        }
                    }
                }
            }
        }