[第1000关]ZigZag遍历二维数组

更新ZigZag遍历任意二维数列的代码,行列数相等和不等都可以。

/*ZigZag遍历任意二维数组
*/

global ar:=object()
a=5 ;行
b=7 ;列
c :=a+b-1 ;对角线数量
make_array(a,b)
loop, % c
	{		
	sn2:=a_index
	loop, % sn2
		{
			if (mod(sn2,2)=0) 
			{
				tmp.=ar[a_index, sn2+1-a_index] ? ar[a_index, sn2+1-a_index]  . "|" : ""
			}
			else
			{
				tmp.=ar[sn2+1-a_index, a_index] ? ar[sn2+1-a_index, a_index] . "|" : ""
			}
		}
	}
msgbox, % tmp
return

/*生成一个二维数组
*/
make_array(x,y)
{
loop, % x
{
	aa:=A_Index
	loop, % y
		{
		ar[aa,A_index]:=a_index+(aa-1)*y	
		}
}
return, % ar
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

个税汇算清缴计算器

2022-2-22 22:49:23

其他

ahk日记2.23

2022-2-23 22:36:37

2 条回复 A文章作者 M管理员
  1. 三界中人

    大佬你这个 tmp.=ar[sn2+1-a_index, a_index] ? ar[sn2+1-a_index, a_index] . “|” : “” 是什么用法 我没能领悟他的用法?:和.的结合体吗? 能说一下用法吗

  2. 三界中人

    make_array(x,y) 改为 make_array(y,x) (mod(sn2,2)=0) 改为 (mod(sn2,2)=1) 结果就对了

个人中心
购物车
优惠劵
有新私信 私信列表
搜索