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