是Lua的新手,我正计划开发宾果游戏。 我创建了25个网格,我随机生成了数字。 但网格中的数字正在重复 我已经搜索过,但我找不到善意帮助我的朋友。
--enter code here
local widget = require "widget"
local storyboard = require( "storyboard" )
local scene = storyboard.newScene()
local xaxis = {40,80,120,160,200,40,80,120,160,200,40,80,120,160,200,40,80,120,160,200,40,80,120,160,200}
local yaxis = {40,40,40,40,40,80,80,80,80,80,120,120,120,120,120,160,160,160,160,160,200,200,200,200,200}
local img = {}
local i
local k
local u={}
for i = 1, 25 do
img[i] = display.newImageRect( "t.png", 39, 39 )
img[i].x=xaxis[i]
img[i].y=yaxis[i]
math.randomseed( os.time() )
j = math.random(1,75)
u[i], u[j] = u[j], u[i]
img[i] = display.newText(j,0,0,native.systemFont,20)
img[i].x=xaxis[i]
img[i].y=yaxis[i]
end
这些数字随机生成,但数字正在重复
答案 0 :(得分:3)
这几乎是每种编程语言中常见的错误。当你使用随机循环时,你应该总是在循环之外分配时间种子。因为迭代非常快,并且每次重新分配当前时间,导致生成相同的随机数字。
所以你要做的就是把math.randomseed( os.time() )
带出循环:
math.randomseed( os.time() )
for i = 1, 25 do
img[i] = display.newImageRect( "t.png", 39, 39 )
img[i].x=xaxis[i]
img[i].y=yaxis[i]
j = math.random(1,75)
u[i], u[j] = u[j], u[i]
img[i] = display.newText(j,0,0,native.systemFont,20)
img[i].x=xaxis[i]
img[i].y=yaxis[i]
end