private void OnClickPos(chess.Board board, Coord cd) { if (turnSelf && (!waitOk)) { if (board[cd] != null) { var piece = board[cd]; if (board[cd].Flag == selfFlag) { selectedPos = cd; dropPoses = GetDropPoses(board, cd); } else { if (dropPoses != null && dropPoses.Exists(p => p.Equals(cd))) { MovePiece(selectedPos.Value, cd); } } } else { if (dropPoses != null && dropPoses.Exists(p => p.Equals(cd))) { MovePiece(selectedPos.Value, cd); } } } }
private void InitAiGame() { gameWindow.Title = "中国象棋-人机"; viewBoard = gameWindow.Board; board = gameWindow.Board.ChessBoard; gameWindow.Board.ClickPos += OnClickPos; }
private void OnClickPos(chess.Board board, Coord pos) { if (!searching) { if (board[pos] != null) { var piece = board[pos]; if (board[pos].Flag != AiFlag) { selectedPos = pos; dropPoses = GetDropPoses(board, pos); } else { if (dropPoses != null && dropPoses.Exists(p => p.Equals(pos))) { MovePiece(selectedPos.Value, pos); } } } else { if (dropPoses != null && dropPoses.Exists(p => p.Equals(pos))) { MovePiece(selectedPos.Value, pos); } } } }
public Board() { Width = Constant.BOARD_WIDTH; Height = Constant.BOARD_HEIGHT; MouseDown += RaiseClick; ChessBoard = new chess.Board(); }
public HumanGame(LocalSocket socket, ChessFlag flag) { selfFlag = flag; gameWindow = new GameWindow(); gameWindow.Title = "中国象棋-双人"; viewBoard = gameWindow.Board; viewBoard.UpChessFlag = (flag == ChessFlag.BLACK) ? ChessFlag.RED : ChessFlag.BLACK; viewBoard.ClickPos += OnClickPos; board = viewBoard.ChessBoard; this.socket = socket; socket.ReceivedOk += OnReceiveOk; socket.ReceivedMove += OnAnotherMove; if (flag == ChessFlag.RED) { turnSelf = true; } gameWindow.Closed += Exit; }