|
01 02 03 04 05 06 07 08 09
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
无聊中想到了上图这样的一个正方形图形,我想用批处理实现一下上图的打印,字符规则为自左上角开始一个数字,顺时针不断循环,直到缩小至图形中心为止。起始数字和正方形外围的长度手动输入。
可先不必考虑各种复杂情况,仅考虑上图的打印思路。。。- @echo off & color e & SETLOCAL ENABLEDELAYEDEXPANSION
- mode con lines=30 cols=80
- set /p num=请输入开始数:
- set /p row=请输入总行数:
- set /a n=%num%+%row%-1
- echo.&echo.
- :lp
- if %num% leq %n% (
- set temp= %num%
- set num=!temp:~-4!
- set /p=!num!<nul
- set /a num+=1
- goto lp
- )
- echo.
- set /a print1=%row%-2
- set /a sum=%n%*2+%row%*3-3
- set /a space=4*%row%-8
- for /l %%a in (1,1,%print1%) do (
- set /a left=!sum!-!num!
- set temp= !left!
- set left=!temp:~-4!
- set /p=!left!<nul
- for /l %%b in (1,1,%space%) do (
- set /p= <nul
- )
- set num= !num!
- set num=!num:~-4!
- echo !num!
- set /a num+=1
- )
- set /a print2=%n%+%row%*2-2
- set /a print3=%print2%-%row%+1
- for /l %%a in (%print2%,-1,%print3%) do (
- set temp= %%a
- set temp=!temp:~-4!
- set /p=!temp!<nul
- )
- pause>nul
- ::
复制代码 以上代码可打印如下图型
[ 本帖最后由 0428_hai 于 2011-4-17 23:31 编辑 ] |
|