虽然在条件满足后循环没有退出(Ruby)

时间:2013-03-04 23:32:31

标签: ruby

我不是一个熟练的程序员,但每个人都必须从某个地方开始。 我一直试图在ruby中创建一个(非常)基本的迷宫类型,但是我很难在while循环中退出。

房间布局是颠倒的:

 5
 2
103
 4

从中心向北两次将@loc更改为5,说“结束”,然后退出循环:

elsif @loc == 2
@loc = 5
puts "End"

但它会回到while循环的开头,让玩家陷入困境。

编辑:关于代码存在一些混淆,所以我正在移除块并指向您 http://pastebin.com/EFWVBAhn

1 个答案:

答案 0 :(得分:1)

该行

while @loc != 5

正在访问未更改的变量。更改发生在cmd.loc,这不是同一个变量。该行必须

while cmd.loc != 5

以访问变量。

您还需要引用字符串(例如if command == west应为if command == "west");否则你告诉Ruby要比较一个名为west的变量,它不存在,而不是字符串“west”。