@@ -129,57 +129,57 @@ public static int qScore(Board board, Evaluator evaluator, IList<MovePicker> mov
129129 return board . WhosTurn == Player . White ? playerScore : - playerScore ;
130130 }
131131
132- public static int qSearch ( Board board , Evaluator evaluator , IList < MovePicker > moveStack , out int resultDepth , int ply = 0 , int alpha = Evaluator . MinValue , int beta = Evaluator . MaxValue )
133- {
134- resultDepth = 0 ;
135- var me = board . WhosTurn ;
136- var ischeck = board . IsCheck ( ) ;
137- if ( ! ischeck )
138- {
139- int staticEval = evaluator . EvalFor ( board , me ) ;
140- if ( staticEval >= beta ) { return beta ; }
141- alpha = Math . Max ( alpha , staticEval ) ;
142- }
143-
144- var plyMoves = moveStack [ ply ] ;
145- plyMoves . Initialize ( board , Move . EMPTY , ! ischeck ) ;
146- ChessMoveData moveData ;
147- //Bitboard taken = Bitboard.Empty;
148-
149- while ( ( moveData = plyMoves . NextMoveData ( ) ) . Move != Move . EMPTY )
150- {
151- Move move = moveData . Move ;
152-
153- if ( ! ischeck )
154- {
155- if ( moveData . SEE < 0 ) { continue ; }
156- //if ((move.To().ToBitboard() & taken) != Bitboard.Empty) { continue; }
157- }
158- //taken |= move.To().ToBitboard();
159-
160- board . MoveApply ( move ) ;
161-
162- if ( board . IsCheck ( board . WhosTurn . PlayerOther ( ) ) )
163- {
164- board . MoveUndo ( ) ;
165- continue ;
166- }
167- int childResultDepth ;
168- var score = - qSearch ( board , evaluator , moveStack , out childResultDepth , ply + 1 , - beta , - alpha ) ;
169-
170-
171- board . MoveUndo ( ) ;
172-
173- if ( score > alpha )
174- {
175- resultDepth = childResultDepth + 1 ;
176- }
177- if ( score >= beta ) { return beta ; }
178- alpha = Math . Max ( alpha , score ) ;
179-
180- }
181- return alpha ;
182-
183- }
132+ // public static int qSearch(Board board, Evaluator evaluator, IList<MovePicker> moveStack, out int resultDepth, int ply = 0, int alpha = Evaluator.MinValue, int beta = Evaluator.MaxValue)
133+ // {
134+ // resultDepth = 0;
135+ // var me = board.WhosTurn;
136+ // var ischeck = board.IsCheck();
137+ // if (!ischeck)
138+ // {
139+ // int staticEval = evaluator.EvalFor(board, me);
140+ // if (staticEval >= beta) { return beta; }
141+ // alpha = Math.Max(alpha, staticEval);
142+ // }
143+
144+ // var plyMoves = moveStack[ply];
145+ // plyMoves.Initialize(board, Move.EMPTY, !ischeck);
146+ // ChessMoveData moveData;
147+ // //Bitboard taken = Bitboard.Empty;
148+
149+ // while ((moveData = plyMoves.NextMoveData()).Move != Move.EMPTY)
150+ // {
151+ // Move move = moveData.Move;
152+
153+ // if (!ischeck)
154+ // {
155+ // if (moveData.SEE < 0) { continue; }
156+ // //if ((move.To().ToBitboard() & taken) != Bitboard.Empty) { continue; }
157+ // }
158+ // //taken |= move.To().ToBitboard();
159+
160+ // board.MoveApply(move);
161+
162+ // if (board.IsCheck(board.WhosTurn.PlayerOther()))
163+ // {
164+ // board.MoveUndo();
165+ // continue;
166+ // }
167+ // int childResultDepth;
168+ // var score = -qSearch(board, evaluator, moveStack, out childResultDepth, ply + 1, -beta, -alpha);
169+
170+
171+ // board.MoveUndo();
172+
173+ // if (score > alpha)
174+ // {
175+ // resultDepth = childResultDepth + 1;
176+ // }
177+ // if (score >= beta) { return beta; }
178+ // alpha = Math.Max(alpha, score);
179+
180+ // }
181+ // return alpha;
182+
183+ // }
184184 }
185185}
0 commit comments