每步延迟: 深度/云库秒回时保证行棋节奏(计入 thinking_time); 油猴 v1.7.0, bot 加 --move-delay
This commit is contained in:
1 parent
9486fa3cdc
commit
f51847b6c8
2 files changed
+39
-4
No files matched your search
@@ -50,6 +50,7 @@ class OnlineBot:
|
||||
self.thinking = False
|
||||
self.game_over = False
|
||||
self.first_deadline = None
|
||||
self.last_move_at = 0.0
|
||||
self._ack = 0
|
||||
self._send_lock = asyncio.Lock()
|
||||
|
||||
@@ -199,6 +200,14 @@ class OnlineBot:
|
||||
|
||||
fen = fen_from_moves(self.moves)
|
||||
t0 = asyncio.get_event_loop().time()
|
||||
# 每步最小间隔(深度/云库秒回时保持节奏)
|
||||
if self.args.move_delay:
|
||||
gap = self.args.move_delay - (t0 - self.last_move_at)
|
||||
if gap > 0:
|
||||
log.info('[game] 行棋节奏延迟 %.1fs', gap)
|
||||
await asyncio.sleep(gap)
|
||||
if self.game_over or not self.is_my_turn():
|
||||
return
|
||||
mv = score = None
|
||||
source = 'engine'
|
||||
|
||||
@@ -215,6 +224,7 @@ class OnlineBot:
|
||||
|
||||
site_mv = ucci_to_site(mv)
|
||||
self.moves.append(mv)
|
||||
self.last_move_at = asyncio.get_event_loop().time()
|
||||
think_ms = int((asyncio.get_event_loop().time() - t0) * 1000)
|
||||
log.info('[game] %s: %s → %s %s %dms', source, mv, site_mv, score, think_ms)
|
||||
self.emit('g_v2.move', {'game_id': self.game_id, 'move': site_mv,
|
||||
@@ -244,6 +254,7 @@ def main():
|
||||
p.add_argument('--hash', type=int, default=256, help='哈希表 MB')
|
||||
p.add_argument('--config', default='10/2', help='匹配时制 总分钟/加秒')
|
||||
p.add_argument('--first-delay', type=int, default=0, help='红方首步延迟秒(实际=此值+5)')
|
||||
p.add_argument('--move-delay', type=float, default=1.0, help='每步最小间隔秒(深度/云库秒回时保持节奏)')
|
||||
p.add_argument('--cloud-min-score', type=int, default=15, help='云库采纳阈值(厘兵)')
|
||||
p.add_argument('--no-cloud', action='store_true', help='禁用云库')
|
||||
args = p.parse_args()
|
||||
|
||||
Reference in new issue
Block a user