Ejemplo n.º 1
0
 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);
             }
         }
     }
 }
Ejemplo n.º 2
0
 private void InitAiGame()
 {
     gameWindow.Title           = "中国象棋-人机";
     viewBoard                  = gameWindow.Board;
     board                      = gameWindow.Board.ChessBoard;
     gameWindow.Board.ClickPos += OnClickPos;
 }
Ejemplo n.º 3
0
 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);
             }
         }
     }
 }
Ejemplo n.º 4
0
 public Board()
 {
     Width      = Constant.BOARD_WIDTH;
     Height     = Constant.BOARD_HEIGHT;
     MouseDown += RaiseClick;
     ChessBoard = new chess.Board();
 }
Ejemplo n.º 5
0
 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;
 }