2014-02-22 84 views
1

我有這個簡單的遊戲,由此產生數學問題,但效率非常低,因爲我必須自己手動完成所有問題。我如何隨機用Corona SDK爲Lua生成數字

有沒有人知道一些比這更好的代碼或指導我如何設置這個好教程?謝謝。

local M = {} 

M["times"] = { 
    { 
     question="6 x 5", --The question. 
     answers={"30", "11", "29", "20"}, --Array of possible answers. 
     answer=1 --Which one from the above array is the correct answer. 
    }, 
} 

return M 

更新:

{ 
    a = math.random(1, 20), 
    b = math.random(1, 20), 
    question = a * b, 
    answer = math.random(m, n) 
} 

我想這會工作,但我在控制檯收到此錯誤:

mathQuestions.lua:55: attempt to perform arithmetic on global 'a' (a nil value)

更新#2

--mathQuestions.lua 
M["times"] = { 

    local rnd = function (x) return math.random(1,x) end 
    M.times = {} 
    local numQuestions = 10 -- how many questions in your database 
    for i=1,numQuestions do 
     local obj = 
     { 
      left=math.random(1,10), 
      right=math.random(1,10), 
      answers={rnd(100), rnd(100), rnd(100), rnd(100)}, 
      answerIndex=rnd(4) -- will override answer[answerIndex] later 
     } 
     obj.answer = obj.left * obj.right 
     obj.answers[obj.answerIndex] = obj.answer 
     M.times[i] = obj 
    end 

} 

我得到這個錯誤:

ERROR: Failed to execute new (params) function on 'game'

mathQuestions.lua:121: unexpected symbol near 'local'

+0

有誰知道一些比這更好的代碼或指導我如何設置這個好教程? – crentist

+0

請在121後標出行,並在你的更新中標出哪一個是121. – Schollii

+0

@Schollii'local rnd = function(x)return math.random(1,x)end' – crentist

回答

1

試試這個:

local rnd = function (x) return math.random(1,x) end 
M.times = {} 
local numQuestions = 10 -- how many questions in your database 
for i=1,numQuestions do 
    local obj = 
    { 
     left=math.random(1,10), 
     right=math.random(1,10), 
     answers={rnd(100), rnd(100), rnd(100), rnd(100)}, 
     answerIndex=rnd(4) -- will override answer[answerIndex] later 
    } 
    obj.answer = obj.left * obj.right 
    obj.answers[obj.answerIndex] = obj.answer 
    M.times[i] = obj 
end 

唯一棘手的部分有obj.answer:你不能這樣做表定義內乘(像你的更新問題中的answer = a*b),因爲左和右(a和b)是不存在的全局變量,如果你做了answer = obj.a*obj.b那麼你也有問題t obj還不存在(它尚未創建)。

+0

哇,這對我來說真的很好,很複雜!你能看看我的更新,並告訴我你的想法嗎? – crentist

+0

補充說明爲什麼您的更新會給您零誤差,hth。 – Schollii

+0

感謝您的回覆。現在我明白爲什麼我的代碼無法工作。我添加了你提供的代碼,但是我得到了一個不同的錯誤,希望我仍然可以得到一些幫助,對lua/corona來說真的很新鮮。 – crentist