2016-06-28 3 views
1

これは私が修正することができない問題です。私は非常に新しいプログラマーであり、コード化が大好きですが、私はこの基本的な戦闘システムの助けが必要です。それは見栄えが良い、またはきれいではないので、私のコードをどのように短くすることができるかについてのヒントも高く評価されます。私の基本的なLuaバトルシステムを固定

local function battle() -- All of this is 100% unfinished, by the way 
    n = math.random(10) + 1 -- Everybody's HP, enemy HP randomly generated number from 10 to 100 
    enemyhp = 10*n 
    herohp = 100 
    io.write("Your HP: ") 
    io.write(herohp) 
    io.write(" ") 
    io.flush() 
    io.write("Enemy HP: ") 
    io.write(enemyhp) 
    io.write(" ") 
    io.flush() 
    if enemyhp <= 0 then 
    print("You won!") 
end 
local function attack() -- Attacking the enemy or running away 
    print("|Attack|Flee|") 
    input = io.read() 
    if input = "attack" then -- This is where my error is 
    attackdamage = math.random(51) 
    if attackdamage = 51 then 
     print("Critical Hit!") 
     enemyhp - 100 
    else 
     enemyhp - attackdamage 
     print("Enemy took ") 
     io.write(attackdamage) 
     io.write(" damage!") 
    elseif input = "flee" then 
    print("You ran away!") 
    end 
    end 
end 

ありがとうございます。

+0

'math.random(10)は'包括1と10の間の乱数を生成するので、あなたは1を追加する場合は、いずれかになります番号を取得します2または11または中央の数字の1つ。このようにして敵の馬力は110と20の間の数字になります。 – user6245072

答えて

0

ブロックifの末尾がありません。あなたは1つではなく、2つの等号(==)を使用して比較する必要があります:それは第二の問題は、あなたが指すラインである

if enemyhp <= 0 then 
    print("You won!") 
end 

でなければなりません

if input == "attack" then 

その後、あなたには、いくつかの変数に値を割り当てるときに、 1つの等号を使用する必要があります。さもなければそれは意味のないただの表現です。

enemyhp = enemyhp - 100 

し、同じエラーが(あなたも、最終的に一つの追加endを持っている)を繰り返します。完全なコードは、実行/コンパイルすることができます:http://ideone.com/dgPoZo

local function battle() -- All of this is 100% unfinished, by the way 
    n = math.random(10) + 1 -- Everybody's HP, enemy HP randomly generated number from 10 to 100 
    enemyhp = 10*n 
    herohp = 100 
    io.write("Your HP: ") 
    io.write(herohp) 
    io.write(" ") 
    io.flush() 
    io.write("Enemy HP: ") 
    io.write(enemyhp) 
    io.write(" ") 
    io.flush() 
    if enemyhp <= 0 then 
    print("You won!") 
    end 
end 
local function attack() -- Attacking the enemy or running away 
    print("|Attack|Flee|") 
    input = io.read() 
    if input == "attack" then -- This is where my error is 
    attackdamage = math.random(51) 
    if attackdamage == 51 then 
     print("Critical Hit!") 
     enemyhp = enemyhp - 100 
    else 
     enemyhp = enemyhp - attackdamage 
     print("Enemy took ") 
     io.write(attackdamage) 
     io.write(" damage!") 
    end 
    elseif input == "flee" then 
    print("You ran away!") 
    end 
end 
関連する問題