В вашей функции есть ряд ошибок
reroll = io.read
. Это присваивает функции io.read
значение reroll
, а не значение прочитанного значения. вам нужно вызвать io.read
и установить reroll
в качестве полученного значения.
reroll = io.read()
, как указано @EgorSkriptunoff в комментариях.
этот тип утверждение всегда будет верным:
if reroll == "y" or "Y" then
вам нужно сравнить обе строки с reroll
, или вы оцените истинное значение "Y"
, которое всегда верно.
for Re_Roll = true
приведет к ошибке, поскольку она не является полной для оператора l oop. похоже, вы не намеревались использовать for
здесь, поэтому я предлагаю удалить его.
в дополнение к проблеме из пункта 1, ваше заявление "N"
вложено в ваш первый Если оператор if, это означает, что он никогда не будет верным.
ваш оператор else идет после окончания вашего оператора if, это неправильно в Lua и вызовет исключение.
Ваш код не пытается сделать так, чтобы al oop разрешил повторное выполнение. Я также предлагаю прочитать документацию lua, и я особенно рекомендую прочитать Программирование на Lua, чтобы помочь лучше понять язык.
Вот код с отмеченными исправлениями, и некоторое время l oop, чтобы разрешить повторные выпуски.
function stats()
Strength = math.random(1, 20)
Dexterity = math.random(1, 20)
Constitution = math.random(1, 20)
Intelligence = math.random(1, 20)
Wisdom = math.random(1, 20)
Charisma = math.random(1, 20)
print(" Stats ")
print("--------------------------")
print("| Strength | " .. Strength .. " |")
print("--------------------------")
print("| Dexterity | " .. Dexterity .. " |")
print("--------------------------")
print("|Constitution| " .. Constitution .. " |")
print("--------------------------")
print("|Intelligence| " .. Intelligence .. " |")
print("--------------------------")
print("| Wisdom | "..Wisdom .. " |")
print("--------------------------")
print("| Charisma | " .. Charisma .. " |")
print("--------------------------")
end
-- This will run the stat function then ask the user if they want to reroll.
stats()
while(true) do
print("Reroll stats" .. (Re_Roll and " again" or "") .. "?")
reroll = io.read()
if reroll == "y" or reroll == "Y" then
Re_Roll = true
stats()
elseif reroll == "n" or reroll == "N" then
if not Re_Roll then
print("thanks for being cultured")
end
Re_Roll = false
break
end
end