@@ -22,6 +22,7 @@ export let searchStartTime: number = 0
2222export let searchTimeLimit : number = 0
2323export let searchStopped : boolean = false
2424export let searchNodes : number = 0
25+ export let searchAITimeRemainingMs : number | null = null
2526
2627// Setter 函数——因为 let 导出的变量在其他模块中不可直接赋值
2728export function setSearchHash ( v : number ) : void { searchHash = v }
@@ -198,7 +199,7 @@ export function getCastlingRights(b: Board): CastlingRights {
198199// ============================================================
199200// 初始化搜索状态
200201// ============================================================
201- export function initSearchState ( b : Board , color : Color , style : AIStyle , difficulty : number , lastMove : { from : { row : number ; col : number } ; to : { row : number ; col : number } } | null ) : void {
202+ export function initSearchState ( b : Board , color : Color , style : AIStyle , difficulty : number , lastMove : { from : { row : number ; col : number } ; to : { row : number ; col : number } } | null , aiTimeRemainingMs ?: number ) : void {
202203 board = b
203204 searchColor = color
204205 searchStyle = style
@@ -213,7 +214,22 @@ export function initSearchState(b: Board, color: Color, style: AIStyle, difficul
213214 4 : 1000 ,
214215 5 : 2500 ,
215216 }
216- searchTimeLimit = timeLimitMap [ difficulty ] ?? 500
217+ const baseTimeLimit = timeLimitMap [ difficulty ] ?? 500
218+
219+ searchAITimeRemainingMs = aiTimeRemainingMs ?? null
220+ if ( searchAITimeRemainingMs !== null ) {
221+ if ( searchAITimeRemainingMs < 10_000 ) {
222+ searchTimeLimit = Math . min ( baseTimeLimit , 50 )
223+ } else if ( searchAITimeRemainingMs < 30_000 ) {
224+ searchTimeLimit = Math . max ( 30 , baseTimeLimit * 0.25 )
225+ } else if ( searchAITimeRemainingMs < 60_000 ) {
226+ searchTimeLimit = Math . max ( 40 , baseTimeLimit * 0.5 )
227+ } else {
228+ searchTimeLimit = baseTimeLimit
229+ }
230+ } else {
231+ searchTimeLimit = baseTimeLimit
232+ }
217233
218234 // 初始化增量追踪(王位置和子力)
219235 const wk = findKing ( b , 'white' )
0 commit comments