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

[代码合集] 【代码征集】批处理实现黑客帝国数码雨

看了前人写的都是 利用random 做的。效果也是随即选取字符,空格数。希望大家爱的代码能有新意。新的写法。呵呵。。。。难为大家了。
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

原帖由 PakTC 于 2009-5-24 07:33 发表
应该可以,不过现在大家应该都很忙~

我看应该可以做到,但较率可能会降得很低很低,横直行每个字控制及每直行也判断应该很费较率吧


最基本的下雨方式,达到100 loops /1sec 我只能用这种方式办到;但加入title走字较果及两个走马灯loop次数也降至40 loops/ 1sec左右

@echo off&setlocal EnableDelayedExpansion&color 0a&mode con: cols=80 lines=26
set a=1234567890 abcd  e g hijk l nopqrst uvw x zAB C E F  IJ KL MNOP  RS T UV X YZ     
set sec=%time:~6,2%
:loop
set /a looptime+=1
if not "%time:~6,2%"=="%sec%" (
    set sec=%time:~6,2%&title  !looptime! loop/1sec
    set/a looptime=0
)
set /a num1=!random!%%80,num2=!random!%%80,num3=!random!%%80,num4=!random!%%80,num5=!random!%%80,num6=!random!%%80,num7=!random!%%80,num8=!random!%%80,num9=!random!%%80,num10=!random!%%80,num11=!random!%%80,num12=!random!%%80,num13=!random!%%80,num14=!random!%%80,num15=!random!%%80,num16=!random!%%80,num17=!random!%%80,num18=!random!%%80,num19=!random!%%80,num20=!random!%%80,num21=!random!%%80,num22=!random!%%80,num23=!random!%%80,num24=!random!%%80,num25=!random!%%80,num26=!random!%%80,num27=!random!%%80,num28=!random!%%80
set nub1=!a:~-%num1%,1!&set nub2=!a:~-%num2%,1!&set nub3=!a:~-%num3%,1!&set nub4=!a:~-%num4%,1!&set nub5=!a:~-%num5%,1!&set nub6=!a:~-%num6%,1!&set nub7=!a:~-%num7%,1!&set nub8=!a:~-%num8%,1!&set nub9=!a:~-%num9%,1!&set nub10=!a:~-%num10%,1!&set nub11=!a:~-%num11%,1!&set nub12=!a:~-%num12%,1!&set nub13=!a:~-%num13%,1!&set nub14=!a:~-%num14%,1!&set nub15=!a:~-%num15%,1!&set nub16=!a:~-%num16%,1!&set nub17=!a:~-%num17%,1!&set nub18=!a:~-%num18%,1!&set nub19=!a:~-%num19%,1!&set nub20=!a:~-%num20%,1!&set nub21=!a:~-%num21%,1!&set nub22=!a:~-%num22%,1!&set nub23=!a:~-%num23%,1!&set nub24=!a:~-%num24%,1!&set nub25=!a:~-%num25%,1!&set nub26=!a:~-%num26%,1!&set nub27=!a:~-%num27%,1!&set nub28=!a:~-%num28%,1!
set o1=%nub1%  %nub2%  %nub3%  %nub4%  %nub5%  %nub6%  %nub7%  %nub8%  %nub9%  %nub10%  %nub11%  %nub12%  %nub13%  %nub14%  %nub15%  %nub16%  %nub17%  %nub18%  %nub19%  %nub20%  %nub21%  %nub22%  %nub23%  %nub24%  %nub25%  %nub26%  %nub27%  %nub28%
set c1=%o1:~0,80%
cls&echo.!c1!!c2!!c3!!c4!!c5!!c6!!c7!!c8!!c9!!c10!!c11!!c12!!c13!!c14!!c15!!c16!!c17!!c18!!c19!!c20!!c21!!c22!!c23!!c24!
set c2=%c1%&set c3=%c2%&set c4=%c3%&set c5=%c4%&set c6=%c5%&set c7=%c6%&set c8=%c7%&set c9=%c8%&set c10=%c9%&set c11=%c10%&set c12=%c11%&set c13=%c12%&set c14=%c13%&set c15=%c14%&set c16=%c15%&set c17=%c16%&set c18=%c17%&set c19=%c18%&set c20=%c19%&set c21=%c20%&set c22=%c21%&set c23=%c22%&set c24=%c23%&set c25=%c24%
goto :loop

Ps:其实把var !a!不断改变应可变得更快速,也可依楼主所说排除用%random%,但排序方式可能就不会太随机了

[ 本帖最后由 Taurus 于 2009-7-29 06:00 编辑 ]

TOP

TOP

应该可以,不过现在大家应该都很忙~
Press Any Key To Continue...

TOP

原帖由 Batcher 于 2009-5-24 06:26 发表
潜水数天完成了自己满意的批处理数码雨
http://bbs.bathome.net/thread-1393-1-2.html

批处理乱雨纷飞
http://bbs.bathome.net/thread-1148-1-6.html

#5指的是:
1./"每直行"不同时段开始向下更改

2../而每行开始向下更改时段不定(即可能同一直行有多个开始向下更改的节点)

3./由上向下更改时,本次刚更改的直行字符保持于本次顺环的横直行交点(因为事实电影的是向下"更改"而不是向下掉下来)


因为关系了横直行和"每行向下更改时段"问题,颇难字面表达,上面可能描述的不好...
而我想可能如果如此要求以cmd显示的话,除增附件外,可能很难实现到,因为要处理有变化的变数都太多了...

[ 本帖最后由 Taurus 于 2009-5-24 07:11 编辑 ]

TOP

回复 5楼 的帖子

潜水数天完成了自己满意的批处理数码雨
http://bbs.bathome.net/thread-1393-1-2.html

批处理乱雨纷飞
http://bbs.bathome.net/thread-1148-1-6.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

其实不断显示echo random不难,但发觉找到的都总是字列向上走的,而不是向下改变,数字不是向下掉就不叫雨嘛...

做了一个model test,(试测单行由上而下改变):
@echo off
:a
@setlocal enabledelayedexpansion >nul 2>nul
set a=1234567890 a cd  e g h  k l no  p r t u w x z B C E F  IJ KL M  OP  RS T  V X YZ
set /a num=%random%%%80
set rn!q!=!a:~-%num%,1!
set /a q+=1
if "!q!"=="24" ( goto :b )
:b
cls
echo 00    %rn0% & echo 01    %rn1% & echo 02    %rn2% &echo 03    %rn3% & echo 04    %rn4% & echo 05    %rn5% &echo 06    %rn6% & echo 07    %rn7% & echo 08    %rn8% &echo 09    %rn9% & echo 10    %rn10% & echo 11    %rn11% &echo 12    %rn12% & echo 13    %rn13% & echo 14    %rn14% &echo 15    %rn15% & echo 16    %rn16% & echo 17    %rn17% &echo 18    %rn18% & echo 19    %rn19% & echo 20    %rn20% &echo 21    %rn21% & echo 22    %rn22% & echo 23    %rn23%
ping /n 127.1>nul
if !q!==24 ( @endlocal & set /a q=0 )
goto a

其实数码雨较果应该像以上"形式"改变,电影的就是由上而下更变嘛...

但试过改成横20行显示,就想不到如何隋机开始更改"横行"的一组数;及如何做"横20行不同时段开始更改而不每行分别显示",因为如果横行每行"不同时段"开始更改,很难不分开变数设置

上面每23次返回由"行1(直行共23行)"顺序向下再更变;但如果横有20行,那直行更改数字就变成横20行全部同时开始更改;

以及如何做横20行不同时段开始更改,除了分别设多个变数显示,想不到有否其他方法,因为分开横直行显示画面会不断跳,但不分开显示又好像又不能控制"不同直行数"不同时段开始更改

加上这几个较果要求,好像不太容易了,
望有高人指教

[ 本帖最后由 Taurus 于 2009-5-24 06:33 编辑 ]

TOP

@echo off
setlocal ENABLEDELAYEDEXPANSION

for /l %%i in (0) do (
set line=
         for /l %%j in (1,1,80) do (
                 set /a Down%%j-=2
                 set x=!Down%%j!
                 if !x! LSS 0 (
                         set /a Arrow%%j=!random!%%3
                         set /a Down%%j=!random!%%15+10
                 )
                 set x=!Arrow%%j!
                 if "!x!" == "2" (
                         set line=!line!!random:~-1!
                 ) else (set "line=!line! ")
         )
         set /p=!line!<nul
)

TOP

要看思路和效果哦。
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

写出来会有什么奖励呢

TOP

返回列表