예제 #1
0
        int OrderRootMove(Move m)
        {
            //use the principal variation move first
            if (PrincipalVariation[0, 0] != null && PrincipalVariation[0, 0].Value == m.Value)
            {
                return(int.MaxValue);
            }

            // otherwise we will use Qsearch to order the moves
            if (!MyBoard.MakeMove(m))
            {
                return(int.MinValue);
            }

            var score = Quiesce(-10000, 10000);

            MyBoard.UnMakeMove();
            return(score);
        }
예제 #2
0
 private void TakeBack()
 {
     MyBoard.UnMakeMove();
     Ply--;
 }