更新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
}
大佬你这个 tmp.=ar[sn2+1-a_index, a_index] ? ar[sn2+1-a_index, a_index] . “|” : “” 是什么用法 我没能领悟他的用法?:和.的结合体吗? 能说一下用法吗
make_array(x,y) 改为 make_array(y,x) (mod(sn2,2)=0) 改为 (mod(sn2,2)=1) 结果就对了