Ejemplo n.º 1
0
 /// <summary>
 /// 执行悔棋操作 (悔棋到自己的上一步棋子)
 /// </summary>
 /// <param name="toOwnPiece">如果为 true, 则悔棋到自己的上一步棋子; 如果为 false, 则悔棋一步.</param>
 public void RegretPieceMove(bool toOwnPiece)
 {
     if (toOwnPiece)
     {
         ReversiPiece ownPiece = CurrentPiece;
         try
         {
             while (true)
             {
                 PopState();
                 if (ownPiece == CurrentPiece)
                 {
                     break;
                 }
             }
             ResetBuffer();
         }
         catch
         {
             ResetBuffer();
             RegretPiece_Finished(true);
         }
         RegretPiece_Finished = null;
     }
     else
     {
         RegretPieceMove();
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 执行悔棋操作 (悔棋 regretCount 步)
 /// </summary>
 /// <param name="regretCount">悔棋步数</param>
 public void RegretPieceMove(int regretCount)
 {
     if (regretCount > MaxRegretSteps)
     {
         throw new Exception("需求的悔棋步数大于实际能悔棋的步数!");
     }
     PopState(regretCount);
     ResetBuffer();
     RegretPiece_Finished = null;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 设置悔棋参数
 /// </summary>
 /// <param name="regretPiece_Finished">悔棋失败时的委托, 通常会要求对方执行一次下棋操作.</param>
 public void SetRegretPieceArgs(WhenRegretPiece_Finished regretPiece_Finished)
 {
     RegretPiece_Finished = regretPiece_Finished;
 }