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); }
private void TakeBack() { MyBoard.UnMakeMove(); Ply--; }