|  | 
 
| 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 编辑 ]
 | 
 |