本帖最后由 neorobin 于 2011-4-25 01:47 编辑
各位的算法, 我没有仔细研究, 粗略看了下发现大家都用了些一样的技巧或方法,
我写的有些长, 想了下, 下面两段- for /l %%i in (40 -1 1) ...
- for %%i in (!ind!) ...
复制代码 可以整合在一起, ind 和 cnt 两个变量省去了, (另外用位运算对 8 求商和余数只是看起来酷点呵, 没什么实质):- for /l %%i in (0 1 39) do (
- set /a "rem=%%i&7, rand=!random!%%(40-%%i)*4
- for %%p in (!rand!) do set get=!nums:~%%p,3!
- set /a "val=get&0xff, lineOffs=(%%i>>3)-(val>>3), colOffs=(%%i&7)-(val&7)
- set "offs=!offs!!lineOffs!:!colOffs! "
- for %%v in (!val!) do set new=!new!!str:~%%v,1!
- if #!rem!==#7 set new=!new!!nl!& set offs=!offs!!nl!
- for %%a in (!get!) do set nums=!nums:%%a,=!
- )
复制代码
|