无忧启动论坛

标题: 如何实现如本贴中正方形循环数字的打印? [打印本页]

作者: 0428_hai    时间: 2011-4-17 23:29
标题: 如何实现如本贴中正方形循环数字的打印?
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

无聊中想到了上图这样的一个正方形图形,我想用批处理实现一下上图的打印,字符规则为自左上角开始一个数字,顺时针不断循环,直到缩小至图形中心为止。起始数字和正方形外围的长度手动输入。
可先不必考虑各种复杂情况,仅考虑上图的打印思路。。。
  1. @echo off & color e & SETLOCAL ENABLEDELAYEDEXPANSION
  2. mode con lines=30 cols=80
  3. set /p num=请输入开始数:
  4. set /p row=请输入总行数:
  5. set /a n=%num%+%row%-1
  6. echo.&echo.
  7. :lp
  8. if %num% leq %n% (
  9. set temp=    %num%
  10. set num=!temp:~-4!
  11. set /p=!num!<nul
  12. set /a num+=1
  13. goto lp
  14. )
  15. echo.
  16. set /a print1=%row%-2
  17. set /a sum=%n%*2+%row%*3-3
  18. set /a space=4*%row%-8
  19. for /l %%a in (1,1,%print1%) do (
  20. set /a left=!sum!-!num!
  21. set temp=    !left!
  22. set left=!temp:~-4!
  23. set /p=!left!<nul
  24. for /l %%b in (1,1,%space%) do (
  25.   set /p= <nul
  26. )
  27. set num=    !num!
  28. set num=!num:~-4!
  29. echo !num!
  30. set /a num+=1
  31. )
  32. set /a print2=%n%+%row%*2-2
  33. set /a print3=%print2%-%row%+1
  34. for /l %%a in (%print2%,-1,%print3%) do (
  35. set temp=    %%a
  36. set temp=!temp:~-4!
  37. set /p=!temp!<nul
  38. )
  39. pause>nul
  40. ::
复制代码
以上代码可打印如下图型


[ 本帖最后由 0428_hai 于 2011-4-17 23:31 编辑 ]




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3