新手练习,表示不知道有什么语法错误,有人帮帮忙看下吗
lua吧
全部回复
仅看楼主
level 1
--[[产生随机数种子]]
math.randomseed(os.time())
g_user_score = 0
g_com_score = 0
rule = {};
rule{"rock"} = {rock = "draw", paper = "lose", scissors = "win"}
rule{"paper"} = {rock = "win", paper = "draw", scissors = "lose"}
rule{"scissors"} = {rock = "lose", paper = "win", scissors = "draw"}
function GetAiMove()
local int_to_name = {"scissors", "paper", "rock"}
return int_to_name[math.random(3)]
end
function result(user_guess, com_guess)
print("user_guess:..."..user_guess.."com_guess:..."..com_guess..)
if(rule[user_guess][com_guess] == "win") then
print("You Win The Round!")
g_user_score = g_user_score + 1
elseif(rule[user_guess][com_guess] == "lose") then
print("You Lose !")
g_com_score = g_com_score + 1
else
print("draw")
end
end
--[[主循环]]
print("Enter q to quit game")
print("\n")
loop = true
while loop == true do
print("User:"..g_user_score.."Comper:"..g_com_score)
user_guess = io.stdin:read**1*
local letter_to_string = {s = "scissors", r = "rock", p = "paper"}
if user_guess == "q" then
loop = false
elseif (user_guess == "r")or(user_guess == "p")or(user_guess == "s")
com_guess = GetAiMove()
result(letter_to_string[user_guess], com_guess)
else
print("Invalid input, try again")
end
错误提示:lua: ...\Sublime Text Build 3065 With Lua\learn_lua\learn_01.lua:6: syntax error near *=*
end
2014年11月14日 04点11分 1
level 6
--[[产生随机数种子]]
math.randomseed(os.time())
g_user_score = 0
g_com_score = 0
rule = {};
rule["rock"] = {rock = "draw", paper = "lose", scissors = "win"}
rule["paper"] = {rock = "win", paper = "draw", scissors = "lose"}
rule["scissors"] = {rock = "lose", paper = "win", scissors = "draw"}
function GetAiMove()
local int_to_name = {"scissors", "paper", "rock"}
return int_to_name[math.random(3)]
end
function result(user_guess, com_guess)
print("user_guess:..."..user_guess.."com_guess:..."..com_guess)
if(rule[user_guess][com_guess] == "win") then
print("You Win The Round!")
g_user_score = g_user_score + 1
elseif(rule[user_guess][com_guess] == "lose") then
print("You Lose !")
g_com_score = g_com_score + 1
else
print("draw")
end
end
--[[主循环]]
print("Enter q to quit game")
print("\n")
loop = true
while loop == true do
print("User:"..g_user_score.."Comper:"..g_com_score)
user_guess = io.stdin:read()
--user_guess = "r"
local letter_to_string = {s = "scissors", r = "rock", p = "paper"}
if user_guess == "q" then
loop = false
elseif (user_guess == "r")or(user_guess == "p")or(user_guess == "s") then
com_guess = GetAiMove()
result(letter_to_string[user_guess], com_guess)
else
print("Invalid input, try again")
end
end
2014年11月14日 05点11分 2
能写这段代码的人,应该不会犯这些错误才是
2014年11月14日 05点11分
回复 BD1990cby :是不是少了个end?
2014年12月01日 10点12分
level 6
OK了!
2014年11月14日 05点11分 3
3q,我是对着书上打的,没想到自己看的这么不仔细[大拇指]
2014年11月14日 05点11分
回复 saber的同桌 :我也是刚学lua的,我是看那些错误提示直接改的。。
2014年11月14日 05点11分
1