Пример #1
0
        /// <summary>
        /// Sinh các thế cờ quân mã dương
        /// </summary>
        /// <param name="board">bàn cờ hiện tại</param>
        /// <returns>danh sách các thế cờ(bàn cờ)</returns>
        public List<ChessBoard> GenerateBoardPositiveTeam(ChessBoard board)
        {
            var list = new List<ChessBoard>();

            foreach (var chess in board.PositiveTeam)
            {
                foreach (var move in chess.GetNextMoves(board))
                {
                    board.MovePiece(chess, move); //đi thử quân cờ, quân cờ chess thuộc board nên phải di chuyển rồi mới copy
                    var boardTemp = board.Clone(); //copy bàn cờ
                    board.Undo(); //undo
                    list.Add(boardTemp); //thêm bàn cờ với nước đi kế tiếp
                }
            }

            return list;
        }
Пример #2
0
        /// <summary>
        /// sinh các thế cờ quân mã âm
        /// </summary>
        /// <param name="board">bàn cờ hiện tại</param>
        /// <returns>danh sách các thế cờ(bàn cờ)</returns>
        public List<ChessBoard> GenerateBoardNegativeTeam(ChessBoard board)
        {
            var list = new List<ChessBoard>();

            foreach (var chess in board.NegativeTeam)
            {
                foreach (var move in chess.GetNextMoves(board))
                {
                    board.MovePiece(chess, move);
                    var boardTemp = board.Clone();
                    board.Undo();
                    list.Add(boardTemp);
                }
            }

            return list;
        }