fix: 压测日志接入 ISMCTS stdout (sims/winRate) 到每局文件

This commit is contained in:
2026-07-07 16:04:35 +08:00
parent 00f33182ab
commit 8de64cc6ae

View File

@ -54,15 +54,35 @@ namespace hjha_console
var main = new PdkGameMain(null);
main.BotMode = true;
// 重定向 output.txt 到本轮日志
// 本轮日志路径
var logPath = $"{logDir}/round_{r:D5}.txt";
if (File.Exists("output.txt")) File.Delete("output.txt");
main.Test("");
// 重定向 Console stdout → 本轮 ISMCTS 日志
var ismctsLog = $"{logDir}/round_{r:D5}_ismcts.txt";
var oldOut = Console.Out;
using (var ismctsWriter = new StreamWriter(ismctsLog) { AutoFlush = true })
{
Console.SetOut(ismctsWriter);
main.Test("");
}
Console.SetOut(oldOut);
// 移动 output.txt → 本轮日志
if (File.Exists("output.txt"))
File.Move("output.txt", logPath);
// 合并 output.txt + ISMCTS 日志 → 本轮日志
using (var combined = new StreamWriter(logPath, false))
{
if (File.Exists(ismctsLog))
{
combined.Write(File.ReadAllText(ismctsLog));
combined.WriteLine();
File.Delete(ismctsLog);
}
if (File.Exists("output.txt"))
{
combined.Write(File.ReadAllText("output.txt"));
}
}
if (File.Exists("output.txt")) File.Delete("output.txt");
completed++;
roundSw.Stop();