wp231957 发表于 2023-2-14 13:24:08

完美,九九归一蛇形矩阵for powershell

$arr = New-Object 'int[,]' 9,9

for($i=0;$i-lt 9;$i++){
    for($j=0;$j-lt 9 ;$j++){
      $arr[$i,$j]=0
    }
   
}

$dx=-1,0,1,0
$dy=0,1,0,-1

$x=0
$y=0
$d=0
$m=9
$n=9

for($i=1;$i-le $m*$n;$i++){
    $arr[$x,$y]=$i
    $ax=$x+$dx[$d]
    $by=$y+$dy[$d]
    if (($ax -lt 0) -or ($ax -ge $m) -or ($by -lt 0 ) -or ($by -ge $n) -or ($arr[$ax,$by] -ne 0) ){
      $d=($d+1) % 4
      $ax=$x+$dx[$d]
      $by=$y+$dy[$d]
    }
    $x=$ax
    $y=$by
}
      
for($i=0;$i-lt 9;$i++){
    $str=""
    for($j=0;$j-lt 9 ;$j++){
      $str+="{0,5}" -f $arr[$i,$j]
    }
    Write-Host$str
   
}      


演示效果
PS D:\wpp> ./func.ps1
   1   2    3   4   5    6   7   8   9
   32   33   34   35   36   37   38   39   10
   31   56   57   58   59   60   61   40   11
   30   55   72   73   74   75   62   41   12
   29   54   71   80   81   76   63   42   13
   28   53   70   79   78   77   64   43   14
   27   52   69   68   67   66   65   44   15
   26   51   50   49   48   47   46   45   16
   25   24   23   22   21   20   19   18   17
PS D:\wpp>

wp231957 发表于 2023-2-14 13:26:21

这里需要记忆的是比较运算符:

-eq   (等于)
-ne   (不等于)
-gt   (大于)
-ge   (大于或等于)
-lt   (小于)
-le   (小于或等于)

liuhongrun2022 发表于 2023-2-14 14:03:19

确实是大师,powershell都能玩出花来
页: [1]
查看完整版本: 完美,九九归一蛇形矩阵for powershell