Board logo

标题: [游戏娱乐] 批处理随机游动粒子 [打印本页]

作者: 523066680    时间: 2008-9-21 12:19     标题: 批处理随机游动粒子

也在cn-dos发表:http://www.cn-dos.net/forum/viewthread.php?tid=43059&sid=GXasLb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. mode con cols=60 lines=30
  4. for /l %%a in (1,1,60) do (set space= !space!)
  5. set /a line=14,col=29
  6. :loop
  7. set /a linenext=%random%%%30
  8. set /a colnext=%random%%%60
  9. for %%a in (line col) do (
  10.    if !%%a! lss !%%anext! (set %%aadd=+) else (set %%aadd=-)
  11. )
  12.    :loop-1
  13.     if %line% neq %linenext% (
  14.         set /a line%lineadd%=1
  15.     ) else (
  16.         set /a col%coladd%=1
  17.     )
  18.     cls
  19.     for /l %%a in (1,1,%line%) do echo,
  20.     echo,!space:~0,%col%!*
  21.     for /l %%a in (1,1,200) do (echo,>nul)
  22.    if %col% neq %colnext% (goto :loop-1)
  23. goto :loop
复制代码

作者: qq641255849    时间: 2008-9-21 13:35

又来占个沙发

期待后续哦
作者: AK47    时间: 2008-9-21 17:51

的确很有趣,不知道什么时候自己也能写这样的批处理?哎!!!!!!!!!!
作者: Batcher    时间: 2008-9-21 20:39     标题: 回复 3楼 的帖子

临渊羡鱼不如退而结网
多看看教程多写写代码
你很快能超过楼主^_^
作者: batman    时间: 2008-9-22 07:59

小子的代码又有了进步,加油。。。
作者: 523066680    时间: 2008-9-30 10:01

一个小虫子
  1. @echo off
  2. title made by 523066680
  3. setlocal enabledelayedexpansion
  4. mode con cols=61 lines=31
  5. for /l %%a in (1,1,60) do (set space= !space!)
  6. for /l %%a in (1,1,30) do (set L%%a=%space%)
  7. set /a line=15,col=29,i=0
  8. :loop
  9. set /a linenext=%random%%%30+1,colnext=%random%%%60
  10. for %%a in (line col) do (
  11.    if !%%a! lss !%%anext! (set %%aadd=+) else (set %%aadd=-)
  12. )
  13.    :loop-1
  14.        if %i% lss 20 (set /a i+=1) else (set i=1)
  15.        if defined cut%i% (
  16.                !cut%i%:"=!
  17.                set "L%a%=!L%a%:~0,%b%! !L%a%:~%c%!"
  18.        )
  19.     set /a C2=col+1
  20.     set "L%line%=!L%line%:~0,%col%!*!L%line%:~%C2%!"
  21.     set cut%i%="set /a a=%line%,b=%col%,c=%C2%"
  22.     cls
  23.     for /l %%a in (1,1,30) do echo,!L%%a!
  24.     for /l %%a in (1,1,300) do (echo,>nul)
  25.     if %line% neq %linenext% (
  26.         set /a line%lineadd%=1
  27.     ) else (
  28.         set /a col%coladd%=1
  29.     )
  30.    if %col% neq %colnext% (goto :loop-1)
  31. goto :loop
复制代码

[ 本帖最后由 523066680 于 2008-10-1 08:22 编辑 ]
作者: pusofalse    时间: 2008-9-30 10:13

如果是这样的效果呢?
  1.   o
  2. o  o o       o
复制代码

---------------------------------
- - ||| 果然过于抽象。。。小虫子在蠕动的效果~

[ 本帖最后由 pusofalse 于 2008-9-30 10:15 编辑 ]
作者: batman    时间: 2008-9-30 10:21

原帖由 523066680 于 2008-9-30 10:01 发表
一个小虫子,制作不成功……会拉稀的虫子@echo off
setlocal enabledelayedexpansion
mode con cols=81 lines=41
for /l %%a in (1,1,60) do (set space= !space!)
for /l %%a in (1,1,30) do (set L%%a=%space% ...

有点粗糙。。。
作者: 523066680    时间: 2008-9-30 10:26

不过一楼的思路和代码我都精简过哦 发现没有
作者: wxcute    时间: 2008-10-1 11:42

现在头大,代码是看不来的。
不过光看效果是很不错,建议改贪吃蛇。
作者: 523066680    时间: 2008-10-1 12:31

贪吃蛇这种想法是从开始就有的,随机游动粒子是制作的一个阶段。
我不想说出来,要是最后没有完成就不好了
作者: raozhao2008    时间: 2008-10-1 12:40

你能不能让它在窗口中写几个字啊
作者: 523066680    时间: 2008-10-1 13:15

这个就技术拉……  可能是要先设置好位置
记下坐标   应该可以做到  但是代码应该蛮繁杂的
我不干这个……觉得很复杂
作者: LJY4.0    时间: 2022-6-12 11:55

@echo off
    setlocal enabledelayedexpansion
    mode con cols=60 lines=30
    for /l %%a in (1,1,60) do (set space= !space!)
    set /a line=14,col=29
    :loop
     set /a linenext=%random%%%30
     set /a colnext=%random%%%60
     for %%a in (line col) do (
       if !%%a! lss !%%anext! (set %%aadd=+) else (set %%aadd=-)
     )
       :loop-1
        if %line% neq %linenext% (
            set /a line%lineadd%=1
        ) else (
            set /a col%coladd%=1
        )
        for /l %%a in (1,1,%line%) do echo,
        echo,!space:~0,%col%!*
        for /l %%a in (1,1,200) do (echo,>nul)
       if %col% neq %colnext% (goto :loop-1)
    goto :loop




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2