如何在Lua中制作密码系统?

我正在尝试制作一个密码系统,但是出现了一个问题,当密码正确时想要运行的代码不会运行。我不确定问题出在哪里,但是我正在寻找解决问题的方法,或者更简单的制作密码系统的方法。 以下是我的代码:

term.setTextColor( colors.red )
print("需要密码")
term.setTextColor( colors.cyan )
io.write("密码:")
local password = io.read()

while (password ~= "Password") do

    io.write("不正确的密码")
    print("")
    io.write("密码:")
    password = io.read()
    if password=="Password" then
        sleep(.5)
        term.setTextColor( colors.green )
        print("通过认证")
    end
end
点赞
用户7170955
用户7170955

一个基本的解决方案可以通过 while 循环实现。

term.setTextColor( colors.red )
print("Password Reqired")

while true do
    term.setTextColor(colors.cyan)
    io.write("Password:\t")
    term.setTextColor(colors.white)
    password = io.read()
    if password=="Password" then
        sleep(.5)
        term.setTextColor(colors.green)
        print("Access Granted")
        break
    else
        term.setTextColor(colors.red)
        print("Access Denied")
    end
end

这将不断重复,直到正确的密码被提供,'break'则跳出循环。

然而,根据您对'term'的调用,我假设您正在使用ComputerCraft。如果是这样,您可能还想防止终止操作,可以通过覆盖错误函数来实现。

term.setTextColor( colors.red )
print("Password Reqired")

function error(txt)
    term.setTextColor(colors.red)
    print(txt)
end

while true do
    term.setTextColor(colors.cyan)
    io.write("Password:\t")
    term.setTextColor(colors.white)
    password = io.read()
    if password=="Password" then
        sleep(.5)
        term.setTextColor(colors.green)
        print("Access Granted")
        break
    else
        term.setTextColor(colors.red)
        print("Access Denied")
    end
end

但请注意,如果有人可以在您的计算机旁边放置一个磁盘驱动器,他们仍然可以进入。

2016-11-28 22:17:09