[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 【挑战】用批处理画出正方形和抛物线

题1******
要求:1---以圆点“.”,全屏模式,在cmd的中央显示正方形
           2--在程序运行时,要求顺时针,逐渐的显示点运动的轨迹
题2******
要求:1---画出函数y=x^2(x>0) 的图像。
           2--程序运行时,以点的形式,逐渐的显示画图轨迹。
-------------------------------------------------------------------------------------
     此题确实很有难度,不适合新手来完成,因此移至本版块,并修改
了标题,事先未来得及和楼主商量,还请楼主谅解。
                                                                      ----------batman----------
-------------------------------------------------------------------------------------
  1. @echo off&setlocal enabledelayedexpansion&color 0A &cls
  2. rem by myzwd 2009 -3 -10
  3. rem  逆时针描点正方形
  4. :main
  5. set "sp=        "
  6. set "sp1=       "
  7. set "sp2=             "
  8. call:1
  9. goto:eof
  10. :1 向上运动
  11. for /l %%i in (1 1 8) do (
  12. set /a n+=1
  13. set /a m=8-!n!
  14. for /l %%i in (1 1 7) do echo.
  15. for /l %%i in (!m! -1 1) do (echo. !sp!)
  16. for /l %%i in (1 1 !n!) do (echo !sp!a)
  17. echo.
  18. echo ----------------------------
  19. for /l %%1 in (1 1 200) do (call echo.>nul)
  20. cls
  21. )
  22. :2 向左运动
  23. for /l %%i in (1 1 8) do (
  24.    for /l %%i in (1 1 7) do echo.
  25.    set aa=!aa! a
  26.    set /p "=!sp1!!aa!"<nul
  27.    echo.
  28.    for /l %%i in (1 1 7) do (echo !SP!a)
  29. echo.
  30. echo ----------------------------
  31. for /l %%1 in (1 1 200) do (call echo.>nul)
  32. cls
  33. )
  34. :3  向下运动
  35. set n=
  36. set m=
  37. for /l %%i in (1 1 8) do (set cc=!cc!a )
  38. for /l %%i in (1 1 7) do (
  39.   for /l %%i in (1 1 7) do echo.
  40.   echo !sp!!cc!
  41.   set /a n+=1
  42.   set /a m=7-!n!
  43.   for /l %%i in (1 1 !n!) do (echo !sp!a!sp2!a)
  44.   for /l %%i in  (1 1 !m!) do (echo !sp!a)
  45.   echo.
  46. echo ----------------------------
  47. for /l %%1 in (1 1 200) do (call echo.>nul)
  48. cls
  49. )
  50. :4 向右运动
  51. set "sp=          "
  52. set "sp2=             "
  53. set "sp5=        "
  54. set n=
  55. set cc=
  56. for /l %%i in (1 1 8) do (set cc=!cc!a )
  57. for /l %%i in (1 1 16) do (set "sp3=   !sp2!")
  58. for /l %%i in (1 1 8) do (
  59.   for /l %%i in (1 1 7) do echo.
  60.   set /a n+=2&set /a "n1=!n!>>1"
  61.   echo !sp5!!cc!
  62.   for /l %%i in (1 1 6) do (set "sp4=!sp5!a   !sp!a"&echo !sp4!)
  63.   call set /p "=!sp5!%%sp3:~0,-!n!%%"<nul
  64.   for /l %%i in (1 1 !n1!) do (set /p=a<nul )
  65.   echo.&echo.
  66. echo ----------------------------
  67. for /l %%1 in (1 1 180) do (call echo.>nul)
  68. cls
  69. )
  70. :The End
  71. for /l %%i in (1 1 7) do echo.
  72. echo !sp1! !cc!
  73. for /l %%i in (1 1 6) do (set "sp4= !sp1!a   !sp!a" &echo !sp4!)
  74. echo !sp1! !cc!
  75. echo ----------------------------
复制代码
  1. @echo off &setlocal enabledelayedexpansion &cls &color 1a
  2. for /l %%1 in (1 1 80) do set "space= !space!"
  3. mode con cols=80 lines=35
  4. rem 抛物线方程为--(y-16)*(y-16)=x edited by myzwd
  5. for /l %%i in (8 -1 1) do (
  6.   set y=%%i
  7.   set /a "x=y*y"
  8.   call echo %%space:~-!x!%%●
  9.   echo.
  10.   for /l %%1 in (1 1 30) do call echo.>nul
  11. )
  12. for /l %%i in (1 1 8) do (
  13.   set y=%%i
  14.   set /a "x=y*y"
  15.   call echo %%space:~-!x!%%●
  16.   echo.
  17.   for /l %%1 in (1 1 30) do call echo.>nul
  18. )
  19. pause
复制代码


说明:抛物线的画法主要是计算y坐标的增量。不是计算y坐标。

[ 本帖最后由 myzwd 于 2009-3-18 23:45 编辑 ]
1

评分人数

我运行了

我运行了,没成功
报告是:此时不因有‘do’
现在可以了 ok。

因为我不知道批处理能否办到,所以出了这个题目。没想到还真可以。我也学习学习。呵呵

[ 本帖最后由 myzwd 于 2009-3-3 23:08 编辑 ]

TOP

回复 9楼 的帖子

不错收藏了。挺好的,学习学习

TOP

回复 11楼 的帖子

我真弄不出来。我都说了,我以为批处理做不出来。我是看了随风的那个小球后,才知道批处理可以做这些。
其实我学习批处理,就是一种业余爱好。还得多象你们学习。呵呵

TOP

回复 18楼 的帖子

我好好学习学习这段代码。看看是怎么编辑的。

TOP

返回列表