【发布时间】:2013-03-05 07:56:54
【问题描述】:
无论如何,我都不是一个熟练的程序员,但每个人都必须从某个地方开始。 我一直在尝试用 ruby 制作一个(非常)基本的迷宫类型,但我在 while 循环不退出时遇到了困难。
房间布局是颠倒的:
5 2 103 4从中心向北两次应该将@loc 更改为 5,说“结束”,然后退出循环:
elsif @loc == 2
@loc = 5
puts "End"
但它会返回到 while 循环的开头,使玩家陷入困境。
编辑:代码有一些混淆,所以我删除了块并指向你 http://pastebin.com/EFWVBAhn
【问题讨论】:
-
我们需要查看更多您的代码。你的课是什么?很可能在您的
cmd.go_north中,您访问的是cmd的@loc字段,而不是您的迷宫类。但在我们看到代码之前我们无法判断。 -
当
@loc的值没有改变时,您如何期望while 语句退出?尝试在语句开头使用puts或其他内容检查该变量的值。 -
请缩进,尤其是在排查循环问题时!它永远不会退出,因为
@loc永远不是5。但是你还没有贴出@loc变化的代码,所以很难说是什么问题。 -
我在工作副本中添加了调试代码,可以确认@loc 正在发生变化。
标签: ruby