中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [原创]********绘制矩形******** 上一主题 | 下一主题
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『楼 主』:  [原创]********绘制矩形********


@echo off
::::::::绘制矩形 {s11ss 2007-10-12}::::::::
setlocal enabledelayedexpansion
if "%1" equ "/?" (
        call :help
        echo 例如:%0 * 8 500
        goto :eof
)

::设置变量:
if "%1" equ "" (
        call :help
        echo 现在就输入参数,如* 8 500:
        set/p s=
        for /f "tokens=1,2* delims= " %%a in ("!s!") do (
                set c=%%a
                set n=%%b
                set w=%%c
        )
) else (
        set c=%1
        set n=%2
        set w=%3
)
set/a r=%n%-2
for /l %%a in (1,1,%n%) do (
        set up=!up!%c%
        for /l %%i in (1,1,%%a) do set down%%a=!down%%a!%c%
        set/a t=%n%-%%a
        ::pause
        for /l %%z in (1,1,!t!) do set down%%a= !down%%a!
        if %%a leq %r% set space%r%= !space%r%!
)
set mid1=!space%r%! %c%
set mid2=%c%!space%r%!%c%

::分四步绘制:
::1.上边的棱
for /l %%a in (1,1,%n%) do (
        cls
        echo !up:~0,%%a!
        call :delay
)
::2.右边的棱
>t.x echo !up!
for /l %%a in (1,1,%n%) do (
        if %%a leq %r% (
                echo !mid1!
                >>t.x echo !mid1!
                call :delay
        )
)
::3.下边的棱
for /l %%a in (1,1,%n%) do (
        cls
        type t.x
        echo !down%%a!
        call :delay
)
::4.左边的棱
for /l %%a in (1,1,%n%) do (
        if %%a leq %r% (
                cls
                echo !up!
                set/a t=%r%-%%a
                for /l %%i in (1,1,!t!) do (
                        echo !mid1!
                )
                for /l %%z in (1,1,%%a) do (
                        echo !mid2!
                )
                echo !up!
                call :delay               
        )
)

::结束:
del t.x
pause>nul
goto :eof

::函数部分:
:delay
for /l %%x in (1,1,%w%) do (echo Waiting...>nul)
goto :eof

:help
echo 参数一:用于显示的字符,如*。
echo 参数二:一行字符的个数,如8。
echo 参数三:字符之间的延时,如500。


2007-10-12 17:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Nickey
初级用户




积分 132
发帖 59
注册 2007-8-23
来自 GuangZhou
状态 离线
『第 2 楼』:  

发觉除了*号之外
其它符号就会出错
如何解释啊 LZ?

2007-10-12 21:16
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (375600651)  编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 3 楼』:  

比如?

2007-10-12 22:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: