gpt4 book ai didi

Java:与命令行应用程序通信

转载 作者:行者123 更新时间:2023-11-30 07:58:58 25 4
gpt4 key购买 nike

我想用 Java 编写国际象棋 GUI 程序。用户可以输入一个 Action ,然后我希望程序进行一个 Action 。因此我将使用 UCI(通用国际象棋接口(interface))。 UCI 是一个终端/命令行应用程序(我使用的是 Mac OS X 和终端),用于计算某个位置的最佳移动。现在我需要做的是写入和读取这个终端应用程序。

例如:我想要某个位置的最佳 Action ,所以我输入:“go”(计算最佳移动)

假设我得到这个答案:“e2e4”(表示将 Pawn(即国际象棋中的棋子)从 e2 方格移动到 e4 方格)

现在我需要读取“e2e4”,然后询问用户下一步行动。所以我需要一直循环这些步骤,直到将死:1. 要求搬家2.计算最佳响应

我已经看到很多其他 StackOverflow 问题都提出了同样的问题:如何运行命令并在命令行/终端中获取其输出。但所有答案都只使用一个命令,例如 runtime.exec("ls"); 但这只是一个命令。我想要的是输入命令、获取响应、执行另一个命令等等,所以基本上我需要与 Mac OSX 的终端应用程序进行通信(交替输入和输出)。我如何在 Java 中实现这一点?

最佳答案

您可以执行运行国际象棋程序的命令,然后检查命令的输出以获得最佳走法(使用Process)。

例如:

String move = null;
Process process = Runtime.getRuntime().exec("go");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getOutputStream()));
move = reader.readLine();
// 'move' now holds a reference to the chess program's output, or null if there was none.

关于Java:与命令行应用程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com