我用 Ruby 构建了一个命令行游戏,现在我正在尝试使用 Shoes 为游戏构建一个 GUI。我花了一上午的时间阅读有关鞋子的文章,查看一些代码示例,并自己编写了一些代码。看起来(我是 Shoes 新手,所以这可能是完全错误的)Shoes 代码(例如,您使用 Shoes 应用程序打开的文件shoes.rb
)必须包含您要运行的所有 Ruby 代码。所有 Ruby 代码都将存在于该文件中。
我启动这个游戏的方式是在命令行通过将命令行参数传递给play.rb
(Ruby 脚本)。运行play.rb "command line game"
或play.rb "shoes game"
在命令行。如果您运行后者,它将进行系统调用以shoes.rb
使用 Shoes 应用程序打开。它将play.rb
传递ShoesInterface
给玩家,而不是CommandLineInterface
. 以下是如何要求玩家移动的示例:
在human_player.rb
文件中:
def make_move
@interface.print("It's your turn to make a move.")
end
@interface
将是CommandLineInterface
或ShoesInterface
。print
inCommandLineInterface
方法只是一个 puts 语句。中的print
方法ShoesInterface
应该告诉鞋子 GUI 显示该文本。我正在尝试尽可能多地重用我的代码。从理论上讲,无论某人如何玩游戏(在网络上、在命令行上、通过 GUI 等),它都应该使用大部分相同的逻辑。界面仅显示消息并接收用户输入。他们只是以不同的方式做到这一点。
问题是我不知道如何将我的鞋子 GUI 连接到我现有的 Ruby 代码。这里有人精通鞋子吗?这在鞋子中可能是不可能的......也许我必须使用不同的 Ruby GUI,但我想在转向另一个之前我会问。