16371人加入学习
(66人评价)
Lua编程
价格 免费

--[[
  说明:该脚本的功能是把有序的一维数组转换成一维回形数组。
  以3行5列为例
  1.未转换的初始一维数组
  local O = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
  --
     ↓
    01    → 04    →07    →10    →13
     ↓   /  ↓    /  ↓   /  ↓   /  ↓
    02  /   05  /  08  /  11  /  14
     ↓ /    ↓  /    ↓ /    ↓ /    ↓
    03/     06/    09/    12/    15
  --
  2.转换成标准的回形一维数组(可参考C语言实现回形数组的代码)
  local P = {1,2,3,12,13,4,11,14,5,10,15,6,9,8,7}
  --
     ↓
    01   12 ← 11 ← 10 ← 09
     ↓    ↓              ↑
    02   13 → 14 → 15   08
     ↓                   ↑
    03 → 04 → 05 → 06 → 07
  --
  3.结合1和2,转换成AR机器人回形码垛的一维回形数组
  local N = {1,2,3,6,9,12,15,14,13,10,7,4,5,8,11}
]]--
 
function HuiXingPLT(Hang,Lie)
  local Timer1 = os.clock() --计时开始
    local c,i,j
    local t,a=1,{}
  --print("请输入回形矩阵的行和列:\n")
  --Hang,Lie=io.read(),io.read()
  local m,n=Lie,Hang
    for i=1,m do --初始化回形矩阵
    a[i]={}
    for j=1,n do
      a[i][j]=0 
      --print("a["..i.."]["..j.."]="..a[i][j])
    end
  end
  --
    if(m > n)then --列数 大于 行数
        if(n%2 == 0)then c=n//2 else c=n//2+1 end
    else
        if(m%2 == 0)then c=m//2 else c=m//2+1 end
    end
    --print("c=",c)
    for i=1,c,1 do
        for j=i,n-i,1 do --输入当前行的数
            a[i][j]=t
      print("1-a["..i,"]["..j,"]="..t)
            t = t + 1
        end
        --
        for j=i,m-i,1 do --输入当前列的数
            a[j][n-i+1]=t
      print("2-a["..j,"]["..n-i+1,"]="..t)
            t = t + 1
        end
        for j=n-i,i,-1 do
            if(t <= m*n)then
                a[m-i+1][j+1]=t --输入第m-i-1行的数
        print("3-a["..m-i+1,"]["..j+1,"]="..t)
                t = t + 1
            end
        end
        for j=m-i,i,-1 do
            if(t<=m*n)then
                a[j+1][i]=t --输入第i列的数
        print("4-a["..j+1,"]["..i,"]="..t)
                t = t + 1
            end
        end
    end
    if(t-1<m*n)then --判断当输入行和列是奇数时最中心的那个数有没有输入,即最后一个数有没有输入
        a[(m//2)+1][(n//2)+1] = m*n
    end
  --初始化原始的有序一维数组
  local New,k2 = {},1
  local Old = {}
    for i=1,m*n do Old[i]=i print("Old["..i.."]="..Old[i]) end
  --把多维数组合并成一维回形数组
    for i=1,m,1 do
        for j=1,n,1 do
      print("a["..i.."]["..j.."]="..a[i][j])
      New[k2] =  a[i][j]
      k2 = k2 + 1
            --if(j%n==0)then
        --print("\n")
            --end
        end
    end
    --把原始的一维有序数组和一维回形数组重新排列成新的一维回形数组
  local w,N = 0,{}
  for i = 1,Hang*Lie do
    repeat w = w + 1 until New[w]==i
    N[i] = Old[w]
    w = 0
    print("N["..i.."]="..N[i])
  end
  --
  local Timer2 = os.clock() --计时结束
  print("T:"..Timer2-Timer1.."s")
  return N
end

local Hang,Lie = 3,5
_New = HuiXingPLT(Hang,Lie)
--得到_New = {1,2,3,6,9,12,15,14,13,10,7,4,5,8,11}

[展开全文]
Robotics.Studio · 2018-09-05 · 该任务已被删除 0

function name(p1,p2)

    exp;

end

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

table 中元素的修改和添加,删除

tab1 = {1,2,3,4}

修改

直接指定key修改值

tab1[1] = 4

 

tab1 = {4,2,3,4}

 

添加

直接指定新的key,并且赋值

tab1[5] = "apple"

 

tab1 = {4,2,3,4,"apple"}

 

删除

指定key,赋值为nil

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

table 中

可以是键值对,相当于字典 ,

也可以不指定key,相对于数组

 

lua中的索引都是从1开始

 

table 元素的遍历

table = {"apple","peach","banana"}

for key, value in pairs(table) do
    print(key.." "..value)
end

 

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

‘’或者“”

多行字符串。

[[

stri

ng ]]

 

如果两个数字字符串进行算数操作时,会尝试进行数学运算

‘1’+‘2’ = 3.0

 

计算字符串长度

#"this is a string"

 

拼接字符串  ..

'this is ' .. 'a string ' = 'this is a string '

如果用 + 号连接,可能会尝试进行数学运算

 

 

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

number都是双精度类型

 

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

nil 空值或者用来删除变量

 

boolean 除了false和nil为 false,其他都为true

 

table 可以当作字典来用,包含键值对

 

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

数据类型:

和C#相比,C#所有的数值类型对应Lua的number

其他一一对应

 

 

number 数值
nil null
string string
table dict;class;hashtable
userdata

 

boolean

bool

function

delegate

thread

不是线程,是协程

 

type(b)   返回的是个字符串的类型描述

nil 和 "nil"

nil 表示空值,不占用内存

"nil"表示一个字符串,占用内存

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

全局变量:

  • 声明一个变量。b=10
  • 删除一个变量。b= nil

nil 相当于C#中的null

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

lua程序和C#程序的区别就是

C#有类的概念

Lua是在单个文件直接写代码,没有明显的类的概念

[展开全文]
使徒 · 2018-08-14 · 该任务已被删除 0

runoob.com/lua/lua-obje

[展开全文]
chaoschay · 2018-07-23 · 该任务已被删除 0

Lua文件I/O 流操作  当做河流,简单模式,安全模式 

file=io.open

[展开全文]
smallgot · 2018-07-22 · 该任务已被删除 0

myyable={"Lua","Java","js"}

newtable={"ll","wer","uio"}

mymetatable={

__add=function(tab,newtab)

local mi=0

for 

}

[展开全文]
smallgot · 2018-07-22 · 该任务已被删除 0

Ascll 根据值 进行排序  从小到大 

table.sort() table.sort()

table.maxn() table.maxn() table.maxn() 

 

[展开全文]
smallgot · 2018-07-22 · 该任务已被删除 0
[展开全文]
yirongaa · 2018-05-13 · 该任务已被删除 0

arg表里面存了一个键值对:"n":[value],它在arg表的末尾

[展开全文]
桔子23 · 2018-04-22 · 该任务已被删除 0

 

 

[展开全文]
一只爱 · 2018-04-19 · 该任务已被删除 0

通过 表名.键名=  添加键

通过表名[]

[展开全文]
zhangbiwei · 2018-04-18 · 该任务已被删除 0

连接字符串""..""

[展开全文]
zhangbiwei · 2018-04-15 · 该任务已被删除 0

nil作为boolean时 相当于false

[展开全文]
zhangbiwei · 2018-04-15 · 该任务已被删除 0

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(1)
视频(64)