/// <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; }
/// <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; }