📄 snakearrange.lua
字号:
--[[
文件名:snakeArrange.lua
功能描述:该文件通过函数snakeArrange()实现蛇行编排功能。
文件中使用的参数members、nos、num都是从Java中传入,为全局变量。
members为参赛成员ArrayList,nos为编排后的对阵ArrayList,num为编排后分成的小组数int。
编排后数据格式类似于:
nos[1][1]="member1" nos[1][2]="member6" nos[1][3]="member7"
nos[2][1]="member2" nos[2][2]="member5" nos[2][3]="member8" nos[2][4]="member11"
nos[3][1]="member3" nos[3][2]="member4" nos[3][3]="member9" nos[3][4]="member10"
参数列表:snakeArrang()函数包含三个参数members、nos、num。
参数类型:members是Java中的ArrayList类型,在Lua中是userdata类型;
nos是Java中的ArrayList类型,在Lua中是userdata类型;
num是Java中的int类型,在Lua中是Number类型。
返回值:文件返回两个值list、nos、num
返回值类型:members是Java中的ArrayList类型,在Lua中是userdata类型;
nos是Java中的ArrayList类型,在Lua中是userdata类型;
num是Java中的int类型,在Lua中是Number类型。
返回值说明:members为参赛成员ArrayList,nos为编排后的对阵ArrayList,num为编排后分成的小组数int。
2007年6月22日 程峰
]]--
------------------------------------------------------------------------------------------------------
-- 函数snakeArrang()的定义,实现蛇行对阵编排
-- 参数members为参赛成员ArrayList,nos为编排后的对阵ArrayList,num为编排后分成的小组数int
function snakeArrange( members, nos, num,arrangeName )
aab = luajava.newInstance("java.lang.String");
aab="aaaaa";
arrangeName=aab;
if num==1 then
l = luajava.newInstance("java.util.ArrayList")
--对阵编排
for i=0, members:size()-1 do
l:add( members:get(i) )
end
nos:add(l)
else
down = true; -- 判断向上、向下移动
direction = true; -- 判断纵向、横向移动;true为纵向移动,false为横向移动
row = 1; -- row��ʶ������
-- group为小组的引用
group={}
-- 为每个小组建立一个java.util.ArrayList对象
-- 用来存储编排后的小组
for i=1, num do
group[i]=luajava.newInstance("java.util.ArrayList")
-- ��ÿ����źõ�С�����nos��
nos:add(group[i])
end
-- 使用for编排分组
for i=0, members:size()-1 do
group[row]:add(members:get(i)); -- 导入小组名
-- 编排到第1小组
if row==1 then
down = true;
-- 判断向下或向右
if direction then
row = row + 1;
direction = false;
else
direction = true;
end
-- 编排到最后一小组
elseif row==num then
down = false;
-- 判断向上或向右
if direction then
row = row - 1;
direction = false;
else
direction = true;
end
-- 编排到中间小组
else
-- 判断向上或向下
if down then
row = row + 1;
else
row = row - 1;
end
end
end -- end for
end -- end if else
end -- end method snakeArrange
----------------------------------------------------------------------------------
--如果相同nationCode的队在一个小组里,则重新放置
function sort(nos,num)
--print(nos:size());
for k=0, nos:size()-1 do
current = nos:get(k);
c = current:get(2);
current:remove(c);
print(c:getCode());
end
end
----------------------------------------------------------------------------------
--判断全局变量members是否正常传入
if members==nil then
print("Error. members object is nil")
return
end
--判断全局变量nos是否正常传入
if nos==nil then
print("Error. nos object is nil")
return
end
--判断全局变量num是否正常传入
if num==nil then
print("Error. num object is nil")
return
end
snakeArrange(members, nos, num,arrangeName);
--sort(nos,num);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -