早上好。我正在尝试将 Stockfish 实现到 Unity 国际象棋游戏中,有人告诉我最好的方法是使用 Spawn.Process 有谁知道我可以查看并作为引用的现有代码?
不同的游戏状态是与 AI 沟通的最佳方式吗?
谢谢!
最佳答案
如果你能在 Forsyth-Edwards Notation 中表示你的游戏状态并阅读Algebraic Notation为了提高你的董事会状态,这应该有效:
string GetBestMove(string forsythEdwardsNotationString){
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "stockfishExecutable";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string setupString = "position fen "+forsythEdwardsNotationString;
p.StandardInput.WriteLine(setupString);
// Process for 5 seconds
string processString = "go movetime 5000";
// Process 20 deep
// string processString = "go depth 20";
p.StandardInput.WriteLine(processString);
string bestMoveInAlgebraicNotation = p.StandardOutput.ReadLine();
p.Close();
return bestMoveInAlgebraicNotation;
}
关于c# - 在 Unity 中使用 Stockfish Chess AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52852843/