⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snakearrange.lua

📁 java代码加载lua文件
💻 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 + -