初学Lua,看到有个题目要取随机的几个整数并排序再输出,我忽然发现这个题目可以更好玩一点更有难度一点
就是给这个随机取得的函数保证它不同时候然后又从大到小或者从小到大输出。于是乎,对于这么一个初学者的我,就迷迷糊糊去写了一个满足了排序的Lua代码
这是从小大到大的排序,sort函数自带这个功能
table.sort(table1)
for key ,var in pairs(table1)do
print(var)
end
然后从大到小需要自己写了就稍微添加了一个function加进去而已
table.sort(table1,function (a,b) return a>b end)
for key ,var in pairs(table1)do
print(var)
end
研究一下,为了保证存进table的数字都不相同必须要添加一个if判断,然后需要一个function来循环判断是否相等,每次不相同的时候插入到table末尾,这样就可以得到规定数目的不同的数字
function shuffle(starNum, endNum, count)
local shuffleNum = {}
local function isExist(num)
for key, var in pairs(shuffleNum) do
if var == num then
return true
end
end
return false
end
-- 生成随机数
local function generateShuffle()
local number = math.random(starNum, endNum)
if isExist(number) then
-- 如果存在,则继续随机
generateShuffle()
else
-- 不存在,加入到随机数表中
table.insert(shuffleNum, number)
if #shuffleNum < count then
generateShuffle()
end
end
end
generateShuffle()
for key, var in pairs(shuffleNum) do
print(var.."\n")
end
end
最后需要自己调用suffle这个函数给他设定自己需要的参数,输出结果大概是这样的
[LUA-print] 8
[LUA-print] 7
[LUA-print] 6
[LUA-print] 1
[LUA-print] 4
[LUA-print] 5
[LUA-print] 2
[LUA-print] 10
[LUA-print] 3
[LUA-print] 9
我一个新手花费的时间就有点久了,希望以后解决问题能有更快速方案