我使用C#在Unity中制作了一个功能齐全的国际象棋游戏。现在我想添加AI,对于国际象棋引擎,我选择了Stockfish。我在游戏中安装了引擎,但它什么也没做,因为它无法与棋盘通信。
要进行通信,我需要每行创建一个FEN字符串,从左上角开始,FEN字符串如下所示:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
小写是黑色的棋子,大写的白色棋子,数字是黑色的空格,w表示白色的下一个转弯,KQkq表示可用的施法,-表示通过是可用的,0 1个移动次数。
有没有人知道创建和操作字符串以制作FEN字符串的教程或提示?
我将把我到目前为止所做的代码粘贴到Stockfish进程中,我没有做任何与FEN字符串相关的事情,因为我真的不知道如何启动它。
欢迎任何链接或提示
void RunProcess()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = false;
startInfo.CreateNoWindow = true;
startInfo.FileName = Application.streamingAssetsPath + "/stockfish_9_x64.exe";
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
string output;
process.StandardInput.WriteLine("uci");
process.StandardInput.WriteLine("isready");
process.StandardInput.WriteLine("position fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
process.StandardInput.WriteLine("go");
process.StandardInput.WriteLine("stop");
process.StandardInput.WriteLine("quit");
do
{
output = process.StandardOutput.ReadLine();
} while (!output.Contains("move"));
UnityEngine.Debug.Log(output);
}
void OnMouseDown()
{
RunProcess();
}
www说
侃侃尔雅
交互式爱情
随时随地看视频慕课网APP
相关分类