2017-02-15 2 views
0

1から10までの数字がランダムに生成され、プレイヤーは数字を推測する必要があるゲームをルアで作ったのです。生成されているように見える唯一の数が、しかし、ここでは9であるコードである:ルアのmath.randomは1つの数字を生成するだけです

number = math.random(1, 10) 

function guess(number) 
    print("Please input a number between 1 and 10: ") 
    input = io.read() 
    if tonumber(input) < number then 
    print("Too low!") 
    guess(number) 
    elseif tonumber(input) > number then 
    print("Too high!") 
    guess(number) 
    elseif tonumber(input) == number then 
    print("You got it!") 
end 
end 

guess(number) 

1と10の間の乱数(math.randomで作成)と番号変数に格納されるべきであるが、生成される数値は常に9であると思われます。これを引き起こす原因は何か、そしてそれをどのように修正できますか?

+0

[Lua乱数重複](http://stackoverflow.com/questions/21806787/lua-random-number) –

+2

可能な[ Lua乱数?](http://stackoverflow.com/questions/21806787/lua-random-number) – hjpotter92

+0

私はそれが重複していると思います。楽しいことに、リンクされた質問も重複しています... Dupliception? – Josh

答えて

2

それにもかかわらず、math.random()は実際にはランダムではありません。これは擬似乱数ジェネレータです。つまり、同じ入力とシードが与えられた場合、常に同じ結果が生成されます。あなたの場合、math.randomseed(seed)を使用して乱数ジェネレータをシードしていません。種を提供する一般的な方法は、次のようにos.time()を使用することです:math.randomseed(os.time())

+0

これで問題は解決しました。ありがとう! – HungryHobo

関連する問題