1

我计划使用 VB.NET 中的控制台应用程序开发大富翁游戏,但使用单独的 GUI(可能是表单应用程序)根据控制台应用程序中的信息显示大富翁板的状态,以便它可以被忽略或按照玩家的意愿使用。我一直在研究在两个程序之间发送信息的方法,并且遇到了管道,除了它们看起来很复杂,如果可以避免的话,我想使用不同的方法。以下是我目前正在考虑发送信息的方法 - 我想知道是否有任何方法可以改进这种方法,或者如果你认为它完全愚蠢,我应该只使用 Pipes -

程序 1 是控制一切的控制台应用程序:游戏的状态取决于控制台。Program 2 是 GUI/Forms 应用程序,它遵循 Program 1 发送的指令并相应地显示板。程序 1 和程序 2 使用两个文本文件 Command.txt 和 CommandAvailable.txt 进行通信。当程序 1 发生变化时 - 例如玩家移动 - 生成命令字符串并将其添加到队列中。程序 1 不断检查 CommandAvailable.txt 以确保文件为,如果是,则清除 Command.txt,然后将队列中的每个命令字符串附加到 Command.txt。完成后,将任意文本添加到 CommandAvailable.txt,例如“CommandAvailable”。

程序 2 不断检查 CommandAvailable.txt 直到它不为空,这意味着程序 1 已向 Command.txt 添加了至少一个命令。程序 2 然后读取 Command.txt 上的每条指令,并将其添加到另一端的队列中。然后清除 CommandAvailable.txt,这将允许程序 1 向 Command.txt 添加更多命令(因为它仅在 CommandAvailable.txt 为空且尚未被自己标记时添加命令。)程序 2 上的单独线程清空命令字符串的队列,解析它们并执行它们。

例如,在控制台中,玩家 1 可能会移动到特拉法加广场(或任何该广场的名称)。程序 1/控制台会将命令“move player1 trafalgar_square”添加到队列中,然后检查 CommandAvailable.txt,如果它为空,将队列中的所有命令添加到 Command.txt。程序 2/GUI 将检查 CommandAvailable.txt,因为它已被程序 1 标记,读取命令,将其添加到队列中,然后将代表玩家 1 的图片框移动到正方形。

如果您认为这种方法可以改进,或者如果您认为它只是愚蠢并且有更好的选择,或者我应该只使用 Pipes,请告诉我。我将使用 VB.NET。

4

0 回答 0