Я пытаюсь сделать текстовую игру с использованием рубина, чтобы изучить язык, я хочу, чтобы ошибка была ошибкой, если игрок вводит строку неправильно, она должна попросить их запустить процесс создания персонажа снова.Как создать новую структуру при возникновении ошибки
Моя проблема заключается в том, что при повторном вызове функции для создания символа она создает новую структуру и сохраняет старую. Поэтому в конце у меня есть что-то, что печатает новую исправленную структуру, а также старую неправильную структуру. Я, очевидно, хочу только сохранить правильный, так как я могу избавиться от старого?
Character = Struct.new(:name,:race,:alignment,:str,:dex,:int,:const,:char,:wis)
def makeChar()
newChar = Character.new()
until i == 6 do
case skillArray[i]
when "str"
newChar.str = rolledStats[i]
when "int"
newChar.int = rolledStats[i]
when "dex"
newChar.dex = rolledStats[i]
when "wis"
newChar.wis = rolledStats[i]
when "const"
newChar.const = rolledStats[i]
when "char"
newChar.char = rolledStats[i]
else
puts("It appears you have entered an invalid value for a skill")
puts("Please try again but enter only the following: str, dex, int, char, wis, const")
makeChar()
end
i += 1
end
puts("Our brave adventurer's name is #{name} the #{race}")
puts("#{name}'s stats are as follows:\n Str: #{newChar.str} \n Dex: #{newChar.dex}
Const: #{newChar.const} \n Int: #{newChar.int} \n Wis: #{newChar.wis} \n Char: #{newChar.char}")
print("#{name} prepare for your quest!")
Привет и добро пожаловать в переполнение стека. Не могли бы вы изменить свой вопрос, чтобы включить свой код? – Schwern
Я добавил код :) – miykael