0

私は決して熟練したプログラマーではありませんが、誰もがどこかから始めなければなりません。Ruby で (非常に) 基本的な迷路型を作成しようとしていますが、while ループが終了しないという問題があります。

部屋のレイアウトは上下逆です。

5
 2
103
 4

中心から北に 2 回移動すると、@loc が 5 に変更され、「End」と発声されてループが終了します。

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

しかし、それは while ループの先頭に戻り、プレイヤーを立ち往生させます。

編集: コードに混乱があるため、ブロックを削除して http://pastebin.com/EFWVBAhnを参照してください

4

1 に答える 1

1

この線

while @loc != 5

変更されていない変数にアクセスしています。変更は に発生していますがcmd.loc、これは同じ変数ではありません。その行は

while cmd.loc != 5

変数にアクセスするため。

また、文字列を引用する必要があります (例: if command == westbe if command == "west")。westそうしないと、文字列 "west" ではなく、存在しないという変数と比較するように Ruby に指示することになります。

于 2013-03-04T23:51:24.230 に答える