修复我基本的Lua战斗系统

这是一个我无法解决的问题。我是一个非常新的程序员,我喜欢编码。然而,我需要帮助这个极其基本的战斗系统,我相信你们所有人都不会介意帮我。它不好看也不干净,所以任何缩短代码的提示也将不胜感激。

local function battle() -- 这完全没有完成
  n = math.random(10) + 1 -- 所有人的HP,敌人的HP从10到100的随机生成数字
  enemyhp = 10*n
  herohp = 100
  io.write("你的HP:")
  io.write(herohp)
  io.write(" ")
  io.flush()
  io.write("敌人的HP:")
  io.write(enemyhp)
  io.write(" ")
  io.flush()
  if enemyhp <= 0 then
  print("你赢了!")
end
local function attack()  -- 攻击敌人或逃走
  print("|攻击|逃跑|")
  input = io.read()
  if input = "attack" then -- 这就是我的错误所在
    attackdamage = math.random(51)
    if attackdamage = 51 then
      print("致命一击!")
      enemyhp - 100
    else
      enemyhp - attackdamage
      print("敌人受到")
      io.write(attackdamage)
      io.write("点伤害!")
  elseif input = "flee" then
    print("你逃跑了!")
    end
  end
end

谢谢。

点赞
用户2196426
用户2196426

你将if块的结尾漏了。它应该是

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

第二个问题是你指向的那一行:你需要使用两个等于号(==)进行比较:

if input == "attack" then

然后当你为某个变量指定值时,你需要使用一个等号。否则它只是一个毫无意义的表达式。

enemyhp = enemyhp - 100

然后相同的错误会重复(最后还有一个额外的end)。你可以编译/运行完整的代码:http://ideone.com/dgPoZo

local function battle() -- 所有这些都是100%未完成的
  n = math.random(10) + 1 -- 所有人的HP,敌人的HP是从10到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()  -- 攻击敌人或逃跑
  print("|Attack|Flee|")
  input = io.read()
  if input == "attack" then -- 这就是我的错误之处
    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
2016-06-28 19:15:55