Я пытаюсь установить xpos
и ypos
изменение в зависимости от направления, в которое игрок входит. Программе удается запросить Where to?
, но позиция не изменяется. Сценарий также всегда по умолчанию соответствует последнему условию (puts("You're drunk."))
.Изменение переменной на основе ввода пользователя
Например:
Однако, мой вывод:
> n
You're drunk.
0
0
Это мой текущий код:
north = "n"
west = "w"
south = "s"
east = "e"
xpos = 0
ypos = 0
puts("WHERE TO?")
compass = gets
if compass == north
ypos = ypos + 1
elseif compass == west
xpos = xpos - 1
elseif compass == south
ypos = ypos - 1
elseif compass == east
xpos = xpos + 1
else
puts("You're drunk.") #if the player does not submit a proper direction
puts(xpos) #for debugging. prints zero when called showing the player has not moved
puts(ypos)
end
Просто небольшая сторона комментарий - в Ruby, вы не всегда нужны скобки вокруг аргументов функции. Например, большинство ваших 'puts (...)' здесь могут стать 'puts ...'. Я заметил, что это похоже на способ Ruby делать что-то, хотя ваш код по-прежнему верен. –
Вы забыли «chomp!» Ваш вход. – squiguy
Еще одно примечание: это 'elsif', а не' elseif', по крайней мере, насколько я знаю. –