Lua学习

题目一、给一个表,表里有5个数,在[0-13]之间,其中0可以表示任意数,判断这个表是否连续?
思路:
连续的条件:
1、表中都是0
2、表中有4个0
3、0个数不大于3,经过排序之后除去0之外,最大值减去最小值的差小于5
注意:要排除掉除去0之外的数里面有相同的数


local list = {0,0,2,5,1}
function toCheck ()
    table.sort(list) -- 把数组从小到大排序
    local zero_num = 0
    for k,v in pairs(list) do
         if v == 0 then
             zero_num = zero_num + 1
         elseif v ~= 0 then
             for i = k+1,#list do
                    if v == list[i] then
                      print("该表不连续")

                       return
                   end   
             end
         end              
    end
    if zero_num == 4 or zero_num ==5 then
      print("该表连续") 
    elseif list[#list] - list[zero_num + 1] < 5 then
      print("该表连续")
    else
      print("该表不连续")
    end
end
toCheck()  

题目二、如何将一组数据等概率打乱?

t = {1,2,3,4,5,6,7,8,9}
local function shuffle(t)
    if not t then return end
    local cnt = #t
    for i=1,cnt do
        local j = math.random(i,cnt)
        t[i],t[j] = t[j],t[i]
    end
end
shuffle(t)
for k,v in pairs(t) do
    print(v)
end 

题目三、将一个数组从小到大排序,然后将重复出现的数字全部删除(后续数字往前移)

local t = {4,2,3,4,1,6,5,8,7}
local newArray = {}
table.sort(t)
newArray[1] = t[1]
for i = 2,#t do
    if t[i] ~= t[i - 1] then
        newArray[i] = t[i]
    end
end
for k,v in pairs(newArray) do
    print(v)
end


题目四、编写一个函数,将某个数组分成两个数组,一个存放偶数,一个存放奇数

local t = {4,2,3,4,1,6,5,8,7}
function device(array)
    local oushuArr = {}
    local jishuArr = {}
    for i = 1,#array do
        if t[i] % 2 == 0 then
            oushuArr[#oushuArr + 1] = array[i]
        else
            jishuArr[#jishuArr + 1] = array[i]
        end
    end
    return oushuArr,jishuArr
end

local a,b = device(t)

for k,v in pairs(a) do
    print(v)
end
print("=========")
for k,v in pairs(b) do
    print(v)
end

一、Lua简介及应用

  1. 想像你住在一栋装潢完毕的别墅里,却可以通过手中的平板任意修改房间布局、家具摆放和色彩格调,只要有足够的资源和强大的架构手段,将别墅变成巴比伦空中花园也未尝不可能。 Lua就是类似于你手中平板一样的工具。
  2. Lua设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
  3. Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。
  4. Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言,可用于编写各种插件。
  5. Lua具有轻便小巧、可扩展性高、运行效率高等特点。
  6. 再说应用,当前Lua在游戏领域可谓大放异彩,从早期的各种游戏插件,到现在成熟的Lua热更新框架,特别在大型联网游戏方面:
  7. Lua热更新技术让安装客户端异常小巧(你没发现那些刚开始只有几十或几百兆的游戏玩一段时间后就有几个G了吗),开发人员不用再为策划永无止境的游戏活动焦头烂额(每逢节假日和一些奇怪的节日可以高效地掏空玩家的钱包)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值