AR机器人码垛跳点功能(Lua脚本实现)

--5*4 --给定一个5行4列的码垛阵列
local X_x,Y_y = 5,4 --5行4列
local t_t = {1,7,20} --设置需要跳过的码垛阵列点
--local p_p = {}       --备份t_t一份到p_p里
--local p_p = t_t --很奇怪!为什么c_c函数里移除了t_t里的值,也会把这个备份的给移除了,所以这样写没效果
print(p_p[1],p_p[2],p_p[3])
local i_i,s_s,j_j = 1,1,1      --起始码垛阵列点
--SetPlt(1,p1,p2,p3,X_x,Y_y)     --码垛初始化
function c_c(l_l,tb2)
	for k_k,v_v in pairs(tb2) do
		if l_l==v_v then
			--table.insert(p_p,v_v) --把值插到新的数组p_p里存放
			--table.remove(t_t,k_k) --移除数组t_t里面比较过的值,目的为节省下一次的比较时间
			return l_l
		end 
	end
	return nil
end
function main()
	while true do
		for i_i=s_s,X_x*Y_y do
			j_j=i_i
			if i_i==c_c(i_i,t_t) then --判断要跳过哪个码垛阵列点
				j_j=j_j + 1
				s_s=j_j
				print("跳过第:"..i_i.."点")
				break
			else
				print("运动到第:"..i_i.."点")
				--MArchP(GetPlt(1,(i_i-1)%X_x+1,(i_i-1)//X_x+1),-10,15,15) 
			end
		end
		if j_j==X_x*Y_y or j_j==X_x*Y_y+1 then
			--t_t=p_p --数组t_t里面的值被移除空了,自然是要补回去了
			--t_t = {1,7,20} --这样写是可以,不过上面写了一个,这里我不想再写一个一样的
			s_s=1
		end
	end
end
main()

猜你喜欢

转载自blog.csdn.net/iss_mk_gmbh/article/details/79224742