批处理之家's Archiver

netbenton 发表于 2021-12-20 16:20

重构批处理俄罗斯方块【完结】

[i=s] 本帖最后由 netbenton 于 2021-12-29 23:29 编辑 [/i]

完结了,彩色俄罗斯方块!!!
一、完美计分,
二、升级加速。
三、随着等级上升,速度,加分都有加成。
四、随时切换【经典】和【复杂】玩法。
五、Esc 一键快速关闭。上班摸鱼时老板来了,一键极速消灭证据。
六、养眼的真彩显示,虚化背景方块帮你很好的对齐。消行时有闪烁特效。
七、高分记录前5名,可输入记录者呢称。
八、游戏速度如何?绝对让你满意,单核2.0G以上的CPU就可以畅玩。游戏速度控制得很好,是以时钟控制游戏速度的,
      不会因为电脑过快出现速度过快无法玩的情况。电脑越快,cpu占用率会越低。


程序文件连MK.exe一起打包了,共10.3Kb,不能直接贴出来,

[url=http://www.bathome.net/redirect.php?goto=findpost&ptid=61071&pid=249832]压缩后再转码请看这里[/url]

mk.exe,在这里可以直接复制代码获得:[url=http://bbs.bathome.net/redirect.php?goto=findpost&ptid=60771&pid=249351]mk.exe 三方[/url]

win10 操作系统测试通过。

终结版本。不再更更新了。

单文件下载。百度网盘:[url=链接:[url]https://pan.baidu.com/s/1x0U6ZqEjFE5KZLuDedqRnQ[/url] ] 提取码:bath[/url]

Gif 动图演示:

[url=https://imgtu.com/i/TB2JET][img]https://s4.ax1x.com/2021/12/27/TB2JET.gif[/img][/url]

谢谢!!

zhanglei1371 发表于 2021-12-21 06:25

太强大了!!!!!

qq629926132 发表于 2021-12-21 15:40

真的是太强了,  原来还有那么多花样

netbenton 发表于 2021-12-26 01:01

[i=s] 本帖最后由 netbenton 于 2021-12-26 01:06 编辑 [/i]

最新、快版本。去掉了注释,变量名减短。可读性差了。


[url=链接:[url]https://pan.baidu.com/s/15gaJrNs-gbKVyjH3X3604w[/url]]  提取码:bath[/url]

请看Gif动图。


[url=https://imgtu.com/i/TdKajS][img]https://s4.ax1x.com/2021/12/25/TdKajS.gif[/img][/url]

netbenton 发表于 2021-12-26 14:14

[i=s] 本帖最后由 netbenton 于 2021-12-26 14:16 编辑 [/i]

精简好了,主程序只有8K。论坛改得只帖子只能发10K了,3方打包不进来。

需要另行下载。
[url]http://bbs.bathome.net/redirect.php?goto=findpost&ptid=60771&pid=249351[/url][code]@echo off
title 批处理俄罗斯方块
::win10测试运行。由netbenton编写,bathome首发,更新于:2021年12月26日

MODE CON: COLS=40 LINES=24
(FOR /F "TOKENS=1 DELIMS==" %%A IN ('SET') DO SET %%A=
path %path%
)

set a=ga1=0 1 5 6;ga2=1 4 5 8;gb1=1 2 4 5;gb2=0 4 5 9;za1=4 5 6 7;za2=1 5 9 d;qa1=1 5 9 8;qa2=0 4 5 6;qa3=2 1 5 9;qa4=4 5 6 a;qb1=1 5 9 a;qb2=2 4 5 6;qb3=0 1 5 9;qb4=4 5 6 8;ta1=5 6 9 a;ta2=5 6 9 a;sa1=1 4 5 6;sa2=1 4 5 9;sa3=4 5 6 9;sa4=1 5 6 9;tw1=5 9;tw2=5 6;on1=9;on2=9;sh1=1 4 5 6 9;sh2=1 4 5 6 9;ao1=0 1 2 4 6;ao2=0 1 4 8 9;ao3=0 4 5 6 2;ao4=0 1 5 8 9;tt1=0 1 2 5 9;tt2=0 4 8 5 6;tt3=1 5 8 9 a;tt4=2 4 5 6 a;k3=k%%=mx,k+;k4=down;k1=y-;k2=y+;k5=暂停;k0=其它键;z=setlocal enabledelayedexpansion;a=!
set %a:;=&set %

if not exist mk.exe (
echo;缺少扩展键盘输入的三方【mk.exe】
pause&goto :eof
)

for /F "tokens=1 delims=#" %%a in ('"prompt #$E# & echo on & for %%b in (1) do rem"') do set "v=%%a"
echo;%v%[?25l

for %%a in (1037 1039 13232 1040 11313 12727) do set /a n+=1,k%%a=n
mk.exe /g
set/a odt=tt/1000,gmk=0,key1=0,l1=40,l2=120,l3=370,l4=1200,tt=%errorlevel%

%z%

set zmenu=%v%[37m%v%[10;26H 【!a!玩法!a!】%v%[12;26H  第!a!guan!a!关%v%[14;26H 消行:!a!fen!a!%v%[16;26H 【得分】%v%[17;26H !a!fens!a!

call :制表 23 22 zb

set s=a
for %%a in (b c d e f) do set %%a=!a!!s!!a!&set s=%%a

for /l %%b in (0,1,9) do (
        set gLineText=!gLineText!!b!f!a!d@.%%b!a!!b!

        set gLineEcho=!gLineEcho!!c!c!b!d!a!e@!a!.%%b!b!!c!

        set pLineTo_0=!pLineTo_0!d@.%%b=0,

)

set pLineTo_0=!pLineTo_0:~,-1!

for /l %%a in (0,1,19) do (
        set e%%a=%%a&set rs=!rs! %%a
        for /f "tokens=*" %%b in ("!pLineTo_0:@=%%a!") do set/a %%b
        set ech=!ech!%v%[B%v%[20D!gLineEcho:@=%%a!
)

set "rs=!rs! "


set n=0
for /l %%a in (30,1,37) do (
        set c!n!=!v![%%am■
        set f!n!=1
        set /a n+=1
)


for /l %%a in (0,1,3) do (
        set zz=!zz!%v%[B%v%[8D
        for /l %%b in (0,1,3) do (
        set zz=!zz!!b!c!a!k%%a.%%b!a!!b!
        set k%%a.%%b=0
        )
)

for /l %%a in (0,1,5) do (
        set g#For=!g#For!!c!d!b!e!a!n%%a!a!!b!.!a!m%%a!a!!c!
        set p#To_@=!p#To_@!d!b!e!a!n%%a!a!!b!.!a!m%%a!a!=@,
        set p#To_0=!p#To_0!k!a!n%%a!a!.!a!m%%a!a!=@,
)


set f0=c0= ;zlin=0000000000;简单=sa_4 ta_1 qb_4 qa_4 za_2 ga_2 gb_2;复杂=!a!简单!a! tw_2 on_2 sh_2 ao_4 tt_4;z简单=复杂;z复杂=简单;玩法=简单;f0=0
set %f0:;=&set %

:rt

%z%

for %%a in (!%玩法%!) do (
for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
  set _%%b=%%c
  for /l %%d in (1,1,%%c) do (
        set/a nx+=1&set ran!nx!=%%b%%d
        set/a $=0
        set str1=
        for %%e in (!%%b%%d!) do (
                set /a x=0x%%e / 4,y=0x%%e %% 4
                if !x! equ 0 (set x=) else (set x=!x!+)
                if !y! equ 0 (set y=) else (set y=!y!+)
                set str1=!str1!n!$!=!x!x,m!$!=!y!y,
                set /a $+=1
        )
        set %%b%%d=!str1!$=!$!

  )
)
)

cls

set/a fen=0,guan=1,fens=0

set eev=%ech%
set eev=%eev%
set eev=%eev%


:l
set/a "x=-1,t=2,y=3,down=950/(guan*2<<2),bti=0"
set/a r=!random!%%nx+1,ro=rr,rr=r %% 7+1
set err=
set tr=!_tr!
set _tr=!ran%r%!
if not defined tr goto :l

set mx=!_%tr:~,2%!
set k=%tr:~2%
set str=!%tr%!
set _str=!%_tr%!

%z%
set /a x=0,y=0,!_str!,$k=$*13-1
set p#k=!p#To_0:~,%$k%!
set /a %p#k:@=rr%


for /f "tokens=*" %%a in ("%zz%") do (
        endlocal
        set ekv=%%~a
)

%z%
set /a x=0,y=0,!str!,$E=$*23,$P=$*20-1,$k=$*13-1
set p#k=!p#To_0:~,%$k%!
set /a %p#k:@=ro%
for /f "tokens=*" %%a in ("%zz%") do (

        endlocal
        set eek=%%~a
        set p#=!p#To_@:~,%$P%!
        set g#=!g#For:~,%$E%!
        set z#=!zlin:~,%$%!
        set p#k=!p#To_0:~,%$k%!

)

        set p#=!p#:@=%ro%!
        set "eek=!eek: =%v%[2C!"

echo;%v%[4;36H!ekv!%v%[0m%v%[1;1H!zb!%zmenu%


:c
set /a "tt=tt+9, gmk=gmk %% 5+1",kn=0,tin+=1,ti=tt/10-down

if "!gmk!" neq "5" (
        if !ti! gtr !bti! (
                set/a bti=tt/10,x+=1,!str!
                FOR /F "TOKENS=*" %%A IN ("%g#%") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "!z#!" equ "%%A" (
                        set /a x1=x,y1=y*2+11
                        set /p =%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!%v%[23;4H空格变形,方向控制,回车暂停,Esc退出。<nul
                 ) else (
                        goto :j
                )
        )

        goto :c

)



if defined 暂停 (call :p&if defined 暂停 endlocal&set 玩法=!z%玩法%!&goto :rt) else (

        mk.exe /g /c !tt! >tt.txt

        for /f "tokens=1-5" %%1 in (tt.txt) do (
                set /a kn+=1
                  set /a key!kn!=k%%1%%2%%3
        )

        for /l %%a in (1,1,!kn!) do (
                for /f %%b in ("!key%%a!") do (

                        if %%b geq 6 goto :exit
                        set bs=!str!
                        set/a by=y,bk=k,!k%%b!=1

                        if "%%b" equ "3" for %%b in ("!tr:~,2!!k!") do set str=!%%~b!

set /a !str!
                        FOR /F "TOKENS=*" %%A IN ("%g#%") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "!z#!" equ "%%A" (
                                if "%%b" equ "3" (
                                        %z%
set /a x=0,y=0,!str!

set /a %p#k:@=ro%


                                        for /f "tokens=*" %%a in ("%zz%") do (
                                                endlocal
                                                set eek=%%~a
                                        )

                                        set "eek=!eek: =%v%[2C!"
                                )
                                set /a x1=x,y1=y*2+11
                                echo;%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!

                        ) else (

                                set/a y=by,k=bk
                                set str=!bs!
                        )
                )

        )

)

goto :c

:j
set /a x1=x,y1=y*2+11,x-=1,$=0
echo;%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!

set /a !str!

for /f "tokens=*" %%a in ("%p#%") do (set /a %%a)

set/a m=0,n=1
for %%a in (!rs!) do (
        set /a n+=1
        FOR /F "TOKENS=*" %%A IN ("!gLineText:@=%%a!") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "%%A" equ "1111111111" (
                set "rs= %%a!rs: %%a = !"
                set/a m+=1
                set /a "!pLineTo_0:@=%%a!"
                set  tx=!tx!!v![!n!;3H■■■■■■■■■■

        )
)


if !m! neq 0 (
        set n=0
        for %%a in (!rs!) do (
                set e!n!=%%a
                set /a n+=1,$=n %% 8
                mk /g >nul
                if !$! lss 3 (
                        echo;!v![30m!tx!
                ) else (
                        echo;!v![3!$!m!tx!
                )
        )
        set tx=
        set/a "fen=fen+m,guan=fen/10+1,fens=fens+l!m!*guan"
)

set eev=%ech%
for /l %%a in (1,1,2) do for /f "tokens=*" %%b in ("!eev!") do set eev=%%b

if !x! leq 1 (
        call :记录保存
        endlocal
        goto :rt
)

goto :l

:记录保存
echo 游戏结束!
mk /w /c 3000
cls
echo;
echo;高分排名:
echo;
%z%
for /l %%a in (1,1,5) do set name%%a=无名氏&set zf%%a=0
set n=0
for /f "tokens=1,2" %%a in (%~n0.ini) do (
        set /a n+=1
        set name!n!=%%a
        set zf!n!=%%b
for %%c in (!n!) do echo;        %%c        !name%%c!        !zf%%c!分
)
echo;
echo;
for /l %%a in (1,1,5) do (
    if not defined find (
          if !fens! gtr !zf%%a! (
        echo;真厉害!本次得分:!fens!分,超过了第%%a名记录保持者:
        echo;【!name%%a!】        !zf%%a! 分
        echo;请留下您的大名:
        set /p name%%a=
        set /a find=zf%%a,zf%%a=fens
         )
    ) else (
         set/a find=zf%%a,zf%%a=!find!
    )
)
(
for /l %%a in (1,1,5) do (
        echo;!name%%a! !zf%%a!
)
)>%~n0.ini

endlocal
goto :eof

:exit
echo 谢谢使用,再见。。。
mk /w /c 3000  >nul
goto :eof


:p


set /a dt=tt/1000-odt
set /a zhen=tin/dt

title 【暂停】!zhen!#!down! 按F2切换玩法,其它键继续。。。
mk /w /c 999999999 >tt.txt
for /f "tokens=1-5" %%1 in (tt.txt) do set 暂停=%%1%%2%%3
if !暂停! neq 10113 set 暂停=

title 批处理俄罗斯方块
goto :eof


:制表 宽 高 变量名
%z%

set/a 宽2=%1-2,高2=%2-2
set "%3=!%3!!v!(0l!v!H"
for /l %%a in (1,1,!宽2!) do (
   set %3=!%3!q
)
set %3=!%3!k
for /l %%b in (1,1,!高2!) do (
   set %3=!%3!%v%[1B%v%[%1Dx%v%[!宽2!Cx
)
set %3=!%3!%v%[1B%v%[%1Dm
for /l %%a in (1,1,!宽2!) do (
   set %3=!%3!q
)
set "r=!%3!j!v!(B"
endlocal&set %3=%r%
goto :eof
[/code]

netbenton 发表于 2021-12-27 14:38

[i=s] 本帖最后由 netbenton 于 2021-12-27 15:40 编辑 [/i]

增加了背景虚块!!无可挑剔了。。。[code]@echo off
title 批处理俄罗斯方块
::win10测试运行。由netbenton编写,bathome首发,更新于:2021年12月24日
MODE CON: COLS=40 LINES=24
(FOR /F "TOKENS=1 DELIMS==" %%A IN ('SET') DO SET %%A=
path %path%
)

set a=ga1=0 1 5 6;ga2=1 4 5 8;gb1=1 2 4 5;gb2=0 4 5 9;za1=4 5 6 7;za2=1 5 9 d;qa1=1 5 9 8;qa2=0 4 5 6;qa3=2 1 5 9;qa4=4 5 6 a;qb1=1 5 9 a;qb2=2 4 5 6;qb3=0 1 5 9;qb4=4 5 6 8;ta1=5 6 9 a;ta2=5 6 9 a;sa1=1 4 5 6;sa2=1 4 5 9;sa3=4 5 6 9;sa4=1 5 6 9;tw1=5 9;tw2=5 6;on1=9;on2=9;sh1=1 4 5 6 9;sh2=1 4 5 6 9;ao1=0 1 2 4 6;ao2=0 1 4 8 9;ao3=0 4 5 6 2;ao4=0 1 5 8 9;tt1=0 1 2 5 9;tt2=0 4 8 5 6;tt3=1 5 8 9 a;tt4=2 4 5 6 a;k3=k%%=mx,k+;k4=down;k1=y-;k2=y+;k5=暂停;k0=其它键;z=setlocal enabledelayedexpansion;a=!
set %a:;=&set %

if not exist mk.exe (
echo;缺少扩展键盘输入的三方【mk.exe】
pause&goto :eof
)

for /F "tokens=1 delims=#" %%a in ('"prompt #$E# & echo on & for %%b in (1) do rem"') do set "v=%%a"
echo;%v%[?25l

for %%a in (1037 1039 13232 1040 11313 12727) do set /a n+=1,k%%a=n
mk.exe /g
set/a odt=tt/1000,gmk=0,key1=0,l1=40,l2=120,l3=370,l4=1200,tt=%errorlevel%

%z%

set zmenu=%v%[37m%v%[10;26H 【!a!玩法!a!】%v%[12;26H  第!a!guan!a!关%v%[14;26H 消行:!a!fen!a!%v%[16;26H 【得分】%v%[17;26H !a!fens!a!

call :制表 23 22 zb

set s=a
for %%a in (b c d e f) do set %%a=!a!!s!!a!&set s=%%a

for /l %%b in (0,1,9) do (
        set gLineText=!gLineText!!b!f!a!d@.%%b!a!!b!

        set gLineEcho=!gLineEcho!!c!c!b!d!a!e@!a!.%%b!b!!c!

        set pLineTo_0=!pLineTo_0!d@.%%b=0,

)

set pLineTo_0=!pLineTo_0:~,-1!

for /l %%a in (0,1,19) do (
        set e%%a=%%a&set rs=!rs! %%a
        for /f "tokens=*" %%b in ("!pLineTo_0:@=%%a!") do set/a %%b
        set ech=!ech!%v%[B%v%[20D!gLineEcho:@=%%a!
)

set "rs=!rs! "


set n=0
for /l %%a in (30,1,37) do (
        set c!n!=!v![%%am■
        set f!n!=1
        set /a n+=1
)


for /l %%a in (0,1,3) do (
        set zz=!zz!%v%[B%v%[8D
        for /l %%b in (0,1,3) do (
        set zz=!zz!!b!c!a!k%%a.%%b!a!!b!
        set k%%a.%%b=9
        )
)

for /l %%a in (0,1,5) do (
        set g#For=!g#For!!c!d!b!e!a!n%%a!a!!b!.!a!m%%a!a!!c!
        set p#To_@=!p#To_@!d!b!e!a!n%%a!a!!b!.!a!m%%a!a!=@,
        set p#To_0=!p#To_0!k!a!n%%a!a!.!a!m%%a!a!=@,
)

set f0=c9=%v%[2C;zlin=0000000000;简单=sa_4 ta_1 qb_4 qa_4 za_2 ga_2 gb_2;复杂=!a!简单!a! tw_2 on_2 sh_2 ao_4 tt_4;z简单=复杂;z复杂=简单;玩法=简单;f0=0
set %f0:;=&set %

set c0=%v%[38;2;37;37;37m□
:rt

%z%

for %%a in (!%玩法%!) do (
for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
  set _%%b=%%c
  for /l %%d in (1,1,%%c) do (
        set/a nx+=1&set ran!nx!=%%b%%d
        set/a $=0
        set str1=
        for %%e in (!%%b%%d!) do (
                set /a x=0x%%e / 4,y=0x%%e %% 4
                if !x! equ 0 (set x=) else (set x=!x!+)
                if !y! equ 0 (set y=) else (set y=!y!+)
                set str1=!str1!n!$!=!x!x,m!$!=!y!y,
                set /a $+=1
        )
        set %%b%%d=!str1!$=!$!

  )
)
)

cls

set/a fen=0,guan=1,fens=0

set eev=%ech%
set eev=%eev%
set eev=%eev%


:l
set/a "x=-1,t=2,y=3,down=950/(guan*2<<2),bti=0"
set/a r=!random!%%nx+1,ro=rr,rr=r %% 7+1

set tr=!_tr!
set _tr=!ran%r%!
if not defined tr goto :l

set mx=!_%tr:~,2%!
set k=%tr:~2%
set str=!%tr%!
set _str=!%_tr%!
set aan=

%z%
set /a x=0,y=0,!_str!,$k=$*13-1
set p#k=!p#To_0:~,%$k%!
set /a %p#k:@=rr%

set  ekv=%zz%
for /f "tokens=*" %%a in ("!ekv:9=0!") do (
        endlocal
        set ekv=%%~a
)

%z%
set /a x=0,y=0,!str!,$E=$*23,$P=$*20-1,$k=$*13-1
set p#k=!p#To_0:~,%$k%!
set /a %p#k:@=ro%
for /f "tokens=*" %%a in ("%zz%") do (

        endlocal
        set eek=%%~a
        set p#=!p#To_@:~,%$P%!
        set g#=!g#For:~,%$E%!
        set z#=!zlin:~,%$%!
        set p#k=!p#To_0:~,%$k%!

)

        set p#=!p#:@=%ro%!


echo;%v%[4;36H!ekv!%v%[0m%v%[1;1H!zb!%zmenu%


:c
set /a "tt=tt+9, gmk=gmk %% 5+1",kn=0,tin+=1,ti=tt/10-down

if "!gmk!" neq "5" (
        if !ti! gtr !bti! (

                set/a bti=tt/10,x+=1,!str!
                FOR /F "TOKENS=*" %%A IN ("%g#%") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "!z#!" equ "%%A" (
                        set /a x1=x+1,y1=y*2+11
                        set /p =%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!%v%[23;4H空格变形,方向控制,回车暂停,Esc退出。<nul
                        goto :c
                 ) else (
                        goto :j
                )
        )

        goto :c

)



if defined 暂停 (call :p&if defined 暂停 endlocal&set 玩法=!z%玩法%!&goto :rt) else (

        mk.exe /g /c !tt! >tt.txt

        for /f "tokens=1-5" %%1 in (tt.txt) do (
                set /a kn+=1
                  set /a key!kn!=k%%1%%2%%3
        )

        for /l %%a in (1,1,!kn!) do (
                for /f %%b in ("!key%%a!") do (

                        if %%b geq 6 goto :exit
                        set bs=!str!
                        set/a by=y,bk=k,!k%%b!=1

                        if "%%b" equ "3" for %%b in ("!tr:~,2!!k!") do set str=!%%~b!

set /a !str!
                        FOR /F "TOKENS=*" %%A IN ("%g#%") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "!z#!" equ "%%A" (
                                if "%%b" equ "3" (
                                        %z%
set /a x=0,y=0,!str!

set /a %p#k:@=ro%
                                        for /f "tokens=*" %%a in ("%zz%") do (
                                                endlocal
                                                set eek=%%~a
                                        )
                                )
                                set /a x1=x+1,y1=y*2+11
                                echo;%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!

                        ) else (

                                set/a y=by,k=bk
                                set str=!bs!
                        )
                )

        )

)

goto :c

:j
set /a x1=x,y1=y*2+11,x-=1,$=0
echo;%v%[1;23H!eev!%v%[!x1!;!y1!H!eek!

set /a !str!

for /f "tokens=*" %%a in ("%p#%") do (set /a %%a)

set/a m=0,n=1
for %%a in (!rs!) do (
        set /a n+=1
        FOR /F "TOKENS=*" %%A IN ("!gLineText:@=%%a!") DO FOR /F "TOKENS=*" %%A IN ("%%A") DO if "%%A" equ "1111111111" (
                set "rs= %%a!rs: %%a = !"
                set/a m+=1
                set /a "!pLineTo_0:@=%%a!"
                set  tx=!tx!!v![!n!;3H■■■■■■■■■■

        )
)


if !m! neq 0 (
        set n=0
        for %%a in (!rs!) do (
                set e!n!=%%a
                set /a n+=1,$=n %% 8
                mk /g >nul
                if !$! lss 3 (
                        echo;!v![30m!tx!
                ) else (
                        echo;!v![3!$!m!tx!
                )
        )
        set tx=
        set/a "fen=fen+m,guan=fen/10+1,fens=fens+l!m!*guan"
)

set eev=%ech%
for /l %%a in (1,1,2) do for /f "tokens=*" %%b in ("!eev!") do set eev=%%b

if !x! leq 1 (
        call :记录保存
        endlocal
        goto :rt
)

goto :l

:记录保存
echo 游戏结束!
mk /w /c 3000
cls
echo;
echo;高分排名:
echo;
%z%
for /l %%a in (1,1,5) do set name%%a=无名氏&set zf%%a=0
set n=0
for /f "tokens=1,2" %%a in (%~n0.ini) do (
        set /a n+=1
        set name!n!=%%a
        set zf!n!=%%b
for %%c in (!n!) do echo;        %%c        !name%%c!        !zf%%c!分
)
echo;
echo;
for /l %%a in (1,1,5) do (
    if not defined find (
          if !fens! gtr !zf%%a! (
        echo;真厉害!本次得分:!fens!分,超过了第%%a名记录保持者:
        echo;【!name%%a!】        !zf%%a! 分
        echo;请留下您的大名:
        set /p name%%a=
        set /a find=zf%%a,zf%%a=fens
         )
    ) else (
         set/a find=zf%%a,zf%%a=!find!
    )
)
(
for /l %%a in (1,1,5) do (
        echo;!name%%a! !zf%%a!
)
)>%~n0.ini

endlocal
goto :eof

:exit
exit


:p


set /a dt=tt/1000-odt
set /a zhen=tin/dt

title 【暂停】!zhen!#!down! 按F2切换玩法,其它键继续。。。
mk /w /c 999999999 >tt.txt
for /f "tokens=1-5" %%1 in (tt.txt) do set 暂停=%%1%%2%%3
if !暂停! neq 10113 set 暂停=

title 批处理俄罗斯方块
goto :eof


:制表 宽 高 变量名
%z%

set/a 宽2=%1-2,高2=%2-2
set "%3=!%3!!v!(0l!v!H"
for /l %%a in (1,1,!宽2!) do (
   set %3=!%3!q
)
set %3=!%3!k
for /l %%b in (1,1,!高2!) do (
   set %3=!%3!%v%[1B%v%[%1Dx%v%[!宽2!Cx
)
set %3=!%3!%v%[1B%v%[%1Dm
for /l %%a in (1,1,!宽2!) do (
   set %3=!%3!q
)
set "r=!%3!j!v!(B"
endlocal&set %3=%r%
goto :eof

[/code][url=https://imgtu.com/i/TB2JET][img]https://s4.ax1x.com/2021/12/27/TB2JET.gif[/img][/url]

slimay 发表于 2021-12-27 22:09

bse你值得拥有 ,自动生成 压缩base码 ,从而一次贴到论坛
[url]http://bcn.bathome.net/s/tool/index.html?key=bse[/url]

netbenton 发表于 2021-12-27 23:01

为了压缩只有3K的三方,使用一个16K的三方,有点跑远了,我把三方打包进批处理,整个程序俄罗斯方块批处理程序才10.4KB

slimay 发表于 2021-12-28 11:48

[i=s] 本帖最后由 slimay 于 2021-12-28 11:52 编辑 [/i]

1.该版核心还是09年的老思路 (碰撞检测: set /a x=0x%%e / 4,y=0x%%e %% 4) 貌似也只能这样了,位运算也没有多大性能提升.
2.兼容性不好, win7 64位无法运行.
3.批处理程序才10.4KB, 变换下压缩思路, bse压成 7.2kb, 这个无需携带bse.exe去解压, 所以并没有增加体积, 相反减少了体积.[code]
@echo off
setlocal enabledelayedexpansion

::*********BASE64 加权解码器*********
set $=set [#]&CALL :BASE64_PRESS&set [$]=A&((for %%Z in ([,],{,},_,$,#,-,@) do (set [$]=![$]!![$]!&for %%S in (![$]!) do (for /l %%i in (1,1,7) do (!$!%%i=![#]%%i:%%Z=%%S!))))&for /l %%i in (1,1,7) do (set/p=![#]%%i:.=!<NUL))>a.BSEP&certutil -decode a.BSEP a.zip&pause&exit /b
::***********************************

:BASE64_PRESS

!$!1=UEsDBBQ]IAMxcnFMO3HqfzBM[JQp[AF]YS5iYXS9OWtvI0dyn0WA/6Gbu2PvmpQ5M6QoculxdoZvrfiUKIm6DwLJGQ4pPkYiR3x98H9RhByCYD/E8Tq7fu75eYl9thewvTEM5JwEhoEk8IdcEudwdoBU9TxIaWWd4wChdqa7q6uqq+vV1bO3tWbbIEar5fWYHbOnkff+cO+Xv/r2r799+7cfvnL/jYf/7PXcujXpDAT+r/7pg88++/DRo9OzT/92oJkNbWAagxf/4dG9s7uNutk2+toHf3f/T8/uPvjh0duffnn2qsiLwrv/IoifvS2u/83nXk++mEyRRLFwC16bW1KYJ5u5QmpLEsNez410sUKCaeLbLt5JFbYkgSRTm7n8liT5CMfJJFcgN57eSm0/fZMkiwQ6CJW8niNYmHD45ryem16P1zPSTFKX9Log8UQgayQS1+si8AtDPxrXGwL0RRxBX5R4Bo/F54CPvQhZj88ZPkCJGj+uC3Y/Cn0HPwL9kCQy/jHoh23aevy44eBjX5REB78RsuWJQd/Bj8ZN4I89xDfrotsfsXUt2pErfwz6IZsW+2FJsPvmBPlgy3jEjYEgxeAtwnvUdnkhVVtcGtUNS08oZwRGIhuFSZTNhZz9EhFGYXsHOGeaDh1b1bQ0E2XymmZIsvFwV2bY0QKMuiGpy3FSfxro+uPdsKQak0G8K0iz1XhXlGYAW5M++/uPzuJdXnr/6w9/eP2H+FwCk/aMZr1HtEG90dNUrVefwXt6VB+MOsYgXpeoZXeufisuPcV66AqdFhkYJtGmnZFJ+t1ntalGbng9f4Sd19MyhiTYAw+rk86A3BAC8MfzN4lqEOQdrJOBXxLYOqZETSqzrkwHFEfgzDaLFvGZRlcbjKRnfC63p83ZkUZ83AvqUYv3Pc243mCy+gDFR7TjE+JbxZ+SyoDbJ1KV7Vw6l5C3UwzqI5aHP/yLD15nZKrW6gw0ldQJRnIcmLBIuPm8tWOv
!$!2=J6ENzROz0yOrSa1pqBpZhbWsSd+i8zwZnPS8Hm2gMuUwHvY+0u4+BFit1+mPpGtLG/IdDY3+kUmuXU9dI08RK58MoIfEHNewlMg2OtT69pZxE76xhFv2eizBx9wv/kRc6znLuurnQ+sEXjEihMQQBB0PmUMQQkKICOK6uH7RLoEuUEpgRtviQZ2ZHGYN1ZRMMwi25AN6vyvxga42Az8O9CD44Q2BIUITkkLr0IRxxAdMU+K04dAY9rSx1mN+xc05J9PM+9rgRELRQ+t9bAQ+Lkay5PRNWqcffXP/z6E5fcgmRDZBXv4SQPpJfQDNK1+wmTCb+eT7R4/OXgVoS8M5NhOxmb38zv3HNpt1BrLQRtCgJGCvHrn1+P0XvyViiIgimTccAUdS/bw6G6RJVKKRlqs3VBcwoiMK76csIuZFS5FgGZGHSIg5HruCmPom+N62NoU4cLuUNmgLWKm3nwVC5NxgUi4IUmBvibpdSpvw16Aq4Gq34cXoGgh26Y4Yd+OAl6jbtVc[3o9S9n/MtRbLwRWBXpuS3V3S8L5PWmoEHiYKoYjiQ5HlDCFrFwW1pZqfEtr3UZq6mNMLc8DLId5sy1ReDH7KvgS+eRCFTbt0m58jgQ+r8eBDST+iY2EcCeh9XM7abKUNKa/AKT+6Xc2tIVQwR7YQWMveKl6Qud4zucSnc8X4keTjl7O+8mlVGDUJtgXI3TZNxiKA5RiALhpC3SJOGvnHfBa2hhKlDXoMCow1IDvANXI2D8LTd8eNZ3Fjq6BpW5L1GqvppJuB5apeJuKp90FxUV013wtXmrGWIIQE/F5rwOmc3/x13/38p9Jo/pBmJj1A4EcN6B3jMN5/UAkOns1DsT4g3uffYohivjQEHMCM8YAXqM2vOoGcjAPwvE544jo8TkjwnEc85DVA2l4+6hs8efOSuYuvJXJonExHlq3/vVP/xMKwKG5lPeWswnlkDlHHZuQCxEiBEQ8MvDIOFgKFkz7LglLQgdoe
!$!3=Y5r4tg1uuqevzCzbHb02qlzBg8hlw6mFKgbQOIiXJd422wjcyhItpdynGYLzrBdwVecaJhK/BSRgiQcmNl9jiNhRIHTlk4pO6J5cgMJptJNovVGmjOCaf9NB3V2DnV2DnUm0ZmN6opI8Q3BeZ0in2mgz3ozOgssyXedRSsGCINY27BJr0tAgSYiBOaJE0TN3sg2MdDDsQEJEw8gMA6eIRLv2F/T4ECG3MQtD7Xxk0P8u9VzOPqm0qoQMCUR9BUKYEUnxdb44A1c4xnxuefEm4GG2ZF4n0MA8Qo2U40+GAHMKASGhjQcBoZDCe1D1v2CI5EJqAfm0C7vDkyLkhty1K3unPLHHBLdMA1yq+cQ98EcB5w5hNwvcjaLrsQAor2nEXIEiDN9YAEOFpA66Mn1/YWLoGsEKKLTwPWudP0ZIbQq2MfPta6TIWBl7nrXYYXnAExCih8O3ZgjWhfUOp9zV9WMPgpYt2IST92oWVkUaswPGBvuhbpt8kvFtaRNgbRiKHC9hC2/Kvwc+Y2rxcX9uJJeIqvWtWW1s6qTh9l6JY66ud1O7AyecuFzgGMqZWDOgV4qt62OpXXwhAX5KYKXKs9wPBTJoprZycZbtVxcyNJ5g3KsynP8vulqw2diPemPBQhWk/Cg9675BV+gizFmdlg5anasonMVI8NrXUt8FLCpjwy0Y+Jb86GaWMYwO5To4Mm0gT1LeXY6azh8Apj4LGPi7IWL8zOL+7KP069xPnZhvgqJky0cJtb8GrWvIAhnci0yoyBhsELFPHtG9AvCYu6ISJa+xFCWapqlQzoVaJzOBIqgLgOJoXg4+/DzB//24tePPj67e/+NT3738IvH75/dfe2Ll17Ga9/Z3dSo+dGHL313evYcu47AClZUN7FPnAy6NHGI/ZtWRvR6FthuRXPukoSLkBtWvXz01MUJx0/ZscJOTTq3D7inLMZDcyECrOZeMUiwCdYzKXneNJ81p+y4vFgtCqtrqHeBxYiF9
!$!4=sTp07WKsRVCXIg2o10o2LpAyXEix4XcvV5yT0XUBVNbgEWNCswWpantXisdC0MHX4zYOVSbdkzXvI2R5Hqb44wzaRZodKVuAGu5BisnHV7gOQ3bh0K+c3dAH7WSMaVdW4RFDuZesC4J9q7tBcnK/4uDPym2DV/50Tzq9VyaFBnRT82MDHk5ObLfhQyJv5tez1JzVTiuuAntymC0rXXOl13jzqTGLNCVGl0XaNmoMbJcgIlheSB7s9dS3GFILsm4kDAwXYXMxeqyny7meYe46tjxgSEc5Tqm4epOJQ6jPhhvIAkXKli4W1k0F29EV3ne4rZr39j+d26IA8vXBPfns1zCufOhg.CDbLSaoRKhvcRT0LfEcaS+5ejqzxJxK1JxSvANCYRkPZU+/e/LPMaWdMPEg6lN2NvFMJvfKufKjirO8Fi+W1kV5WZNg8QGejFGE97uYLZ+3kzsudZ2S3mhEQnZEMM9AeUN8H0VH4Lm0v0[0gXKUk0Mm3ZvAT6sd+Hx962aF7pBgffbpS++/D3g8gxO+mwVXKiFL0mzItv4VV8D0KMtX3S5cQ1kbt8heqBdge3IOoxe//Xbr794du+b89WSc+jYgi0VuEsE1he3Tz/+5P4b//jB789O8csXCU7wSArBLdOu/5na7ObBV/cfv/feO9+fverCufnlO11z9zCo99mXkY9/+873H3zCjsh5CwH8xY8S565/i/jkXhjwz3YGnR+JNmeNhRNZS1jjhhO1Tcv57GOOSb8C0BVqydekKxTFatL7j5nWlvd9xQ7ZRZSQC5cKeKvOlPVD86HX2HUa0wCr1Cy//PybX/3Xq788O33xzXsf40e7s1ctbOjdfenuK//91ocvfwkU73xvme+lx59/dcuhPX3T3gN+MlxxWN9/7Mz/+l/f+o9P3n73Dy+/e+/fLds51ZdjmoVOUXCJcQhYRkIplvZx0+ovAsudscLmCXqKEGpTMcXeuFqblszujlxV2R+nHWdAX144v
!$!5=F19GC0E21WI9WaAI6/7CQxkXHzNXTVU0wXP2xDxUHsHVUZm/afW6ZtY4J0+pDhLr1GsxSn5y3tp8dePXnsNS7yzu9b/N7z+m0e/Pz3Dv6U4ijm/RX33E4s7FAqXlpbKN/QhhFk5VuAFIbTA83p+/D/izqnH67G++D78ljz4irz49VsP3/l++ds0qOLht6LECati4MFX0BFXRfuTIheCiiuEp8INvgfvrO9SW1Kgp0vRgbQ26TEz4xKg+8THYsbhwVc/xoEd/uwLIickp9iy5RLTi5zPIfZ/vqC+IQMc4q4V38LrnrKxuSH3hIav+H8Yr2d757gsy3kZfil8BYNRWd7UqRyjZSqH8HMzlYUIPaHyGg23TvSwbMqDQq6hK9t5vr2TaR81Z8qk2Y8Nmv20mcsU2o3+2tjrURNKZ39Lmam7Yb0OTyUV285lhPF+pnqSLPN3NoAtT/fFenpnr3FYUnpieD7ZV0/y0YzXw0daTaXrB0i93S/wmb11xNg4qolthkFlUaBpJS3LSl4u52WvJyWP5VqZ8QzLckkujxSlPJEVHfaUAPg6TSbYBhXciI4vGHo91jiB22fEFosMm0clTKgcoSlbO4Auy2V8qBzFeWGNlpA2CWjiGtNVJMwaMURx6SjoMAKAzUGlp2WRVMkrZUeMjC2QEKM56NUSa7P9TJqvlXGprs7kZaIiK9kAxKgty4mDJxf1Nk7mbfFybMAwFRQM1g8ty8Wan9Ggvnc313OlVDCTzFZaExQrkouCOInNaGk2SowUPpec6GpJLXo9QX4vOpSHsqrko7ns9nEpsSFEI5M7k2w5g/2Yf2zUamY6mB8kd2rjkR7dDtdKsXQir6aD9lYSm63y3NhChefGk+AdpK7USgmFj/HrwUprDmIw7XT4aq4IC6rlFoIUmTFgyyeruHwVluRTRiGWktP+BLR+OS0od4bB7UpyGK4zsXYRR8wtcLyeZay17U35uJ/dmOgTOSLX0G7lSD6ahHan4
!$!6=58lp6XKXlXYP46dHFbkCRhLVCpeT1lWjmPaYdqCVCplOVGotNrl4HxHr1ZlOXJnBBwS4UEQfrNC2p8r5VLpZLCwqwBu0oCg18GyxcNBcBwMVnOxdKwUK8RAypisCKlwPrYzx+0qvKINZrjviIoamU/uFPbyzMHrzCMUo5YExFJMiBUPx8isntQnuMQ6ukxGX0fsSDGXQNzSoYKL1mSdcUilJmWHQ7E9xc0kogqf7CVKSnWEc+XDyQ5br54qL+OWEdfrQezNWj62bQkrJMcxwZ+LpndxXOzl0cSgkhJycFVTMkCW5FFBTzFv8IvZXRl4J2T/XJlljeR6ca+5X8/IbBdt3EUa5Yni+sdyLZpmqslZKvJ6LCV1q6jpuo5mmJbrHdWQmV6iwn4askmxM8U9RzSMsqTRKdtcd/ITNCYYptpE/rXSNmpPEQqtqMB2ldYVxEJZJhiWkI5Uee+ow0K0XbU0WZzsbOMem5Pesay1VbZWbD5saua4tM00KWyWnuS4oYMcyVHa66niTDa/UdezxuYEoMXxcSQTRWmHpZNRtLQdtuTaLsnFiaVRtbxuxPQU24nXo+zgOslhuXhooN5dLL1lFDHPFEeMewQpiuND0PAUZYhiBkwrDa/H0V5VbOv5KrNYl1ksP1Jk1BFbQant9czWrFmwwqMAx0UU/ITfK0N2mO9s4pq7YSEdSaO1hPT6ktu3cG1w8gjsRAnGBD7dbsya+fkkU9+saFPgAHy6elBX1C0x6Z9sCAnAjgK2fGLO9w0z7QffrGhKv8PviRg2IfD8KLQitEFovR6haI4j/CzplzeEfK60Lg+qm8HQXnQ3DP29aiIyX0PqCVKHcd3WBkrfBBwe2prXg9jQq0bmw2E6XAor2eoWrh1Nu2vP2NrFUbuu7xkxdIvcYsdez/Ke+Qnqviugfx5W94xqxlCgHVXBH2qWb66xAzq0V4WnBk+TyaDD060nmF8adQszyE6OaLlZz7QrVjwyODsq6nqmV
!$!7=FETSfQE9GpZiahBfzAYA0vNg2q5bUdvB7Mci/QUaC0B8VqZK3Y84GpJSIZl8GrM3ztCCSgPDXYkpZV9tPUuWC6Rjh0neuNQOAxGLY4mcrSQDY/Tjb3oIKGAr2yUZd2KrI1yWbda3W4nVluR7daer9jzFXt+y+WwZWNs2RhbNsY2g+fn7G+2uZ0opzpCuZtIF3ZPSqhvvx/yA4vaUia5XmsmkkYzlQX/Vk1+s3wONkBYVj8HqyHM60lOzkE3ACpM02uNia7LoA9tN5rLwUEavfKQ3SxDDCYTmLQFrCyKNRyLOFY6KUzOaMOTHCsRyljSpL[UKoIqSVSWOkokRyreLI6HI9CiGYmzO4561hMACxM28gsWQYEMba8qNfzx5a9YlEkx+NnYyRX9tpHalqZNcRCrxnKy2u6kt3fqyQbomDWdte625neyX41JUdd+Nq8IU57UJHuxrr7ZXTTNM5sq5lKDikaGcgxOV6piDv8TqZ3WOcLY3V3jQe5NLmn9PZ3TcbF60E+W7trE3WvAj5WTlT7O+39VGHcGMCT2dloDBRBTaXkhr6xvby2szLcXSYb24DZa8rJkNxTZ/W9Sq/S741gtiSL07ma3TisIXdZ3rfHo/3dNRgrw/29jROvZ393Ms93UGqI6yyfUEMFKJJ7J2pmX5GzO/P9vZwzz+x+0RnG0UHFaGwWZ2Px8KQ3GqszedyEZ1/g9d1Z7HBvS2lsioKaS5sn6q6gQn0hb+yWdefxeuxeIaHLY3UC1PDsw1ODp4G1/f+tIAyHqGTfLVKF5CU3i/8BUEsBAh8AF]AgAzFycUw7cep/MEw[lCk[AUAJ{[g{AGEuYmF0CgAg][ABABgAWqP5XZz71wHtIMddnPvXAa6t7Vyc+9cBUEsFBg]AB[EAVw[AO8T][==
goto :EOF
[/code]

netbenton 发表于 2021-12-28 22:15

[i=s] 本帖最后由 netbenton 于 2021-12-28 22:51 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=249806&ptid=61071]9#[/url] [i]slimay[/i] [/b]

你打包的我解压后也不对,也是无法运行,mk.exe 本来只有3.5Kb,经你处理的还原后,变成12K,查了原因是我精简时把一个变量a,放到了解压之前,所以出错了。

压缩后再转码错实变小了,不错!!

彩色处理用的是ansi转义,只有win10才有。

思已经改进了好多了,现在的加上彩色显示后,速度还有所提升,并且只有单窗口。

netbenton 发表于 2021-12-28 23:04

[i=s] 本帖最后由 netbenton 于 2021-12-29 23:24 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=249806&ptid=61071]9#[/url] [i]slimay[/i] [/b]


    压缩后再转码,只有6.7K,方法不错。[code]@echo off&setlocal enabledelayedexpansion
for /l %%a in (1,1,70) do set /a n+=1&set t=!t!A&set A!n!=!t!
(
for /f "tokens=*" %%a in ('type "%~dpf0"') do (
if "%%a" equ "-----BEGIN CERTIFICATE-----" set a=开始
if defined a echo;%%a
)
)>mk.zip
Certutil -Decode -f "mk.zip" "mk.zip" > nul
endlocal
mk.zip
exit
-----BEGIN CERTIFICATE-----
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
UEsBAj8AF!A5!gAmhSdU7KUpF+kCwAACRwAABIAJ!A10!g!A9!LLK
yau27cLey7m3vb/pLmJhdAoAI!A8!QAYAP6LdOAZ/NcBvOvRPsf81wGure1c
nPvXAVBLAQI/ABQAAAAIADm1nFMGT7CQSAUAAAAOAAAGACQ!A9!IAAAANQL
AABtay5leGUKAC!A8!EAGAB+dAQL+fvXAetlTnfH/NcB2Yj4Cvn71wFQSwUG
!A6!IAAgC8AAAAQBE!A5!
-----END CERTIFICATE-----

[/code]

slimay 发表于 2021-12-29 14:28

[i=s] 本帖最后由 slimay 于 2021-12-29 14:31 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=249832&ptid=61071]11#[/url] [i]netbenton[/i] [/b]
建议给非win10用户, 也留个体验机会.  比如, 你可以增加个开关 ,是否启用彩色显示. set  启用彩色显示=假.  这样我win7也能测了.要不然还得换系统,迁移体验成本太高.

至于体积 ,你压成7z还能更省.虽然论坛限制了附件,但是低于50kb的小文件, 总有一种压缩算法可以控制在 10kb以内

netbenton 发表于 2021-12-29 18:13

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=249841&ptid=61071]12#[/url] [i]slimay[/i] [/b]

好,有空改一版出来。

其实也可以把 mk.exe 加上彩色显示,浮点计算,播放音乐等,那样的话应该达到10Kb

netbenton 发表于 2021-12-29 23:13

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=249841&ptid=61071]12#[/url] [i]slimay[/i] [/b]

想了一下,win xp ,win7 win8 win10 等操作系统的控制台显示都有所不同,很难全部兼顾。不是仅仅是彩色显示的问题,制表符,字符宽,全角,半角等,要考虑的东西太多了。除非针对每一个操作系统做一次排版。

算法上只要尽量用   
[quote]set /a t!x!.!y!=k!m!.!n!,...  [/quote]
一行代码就完成一个图标数据读写,和碰撞检测,效率就上来了。

win10控制台,以下显示是正常的。在其操作系统却不能很好的对齐。效率实现不难,头痛的是排版问题。

[quote]
┌─────────────────────┐
│ □□□□□□□□□□│
│ □□□□□□□□□□│
│ □□□□□□□□□□│
│ □□□■■■□□□□│    □■□□
│ □□□□■□□□□□│    ■■■□
│ □□□□□□□□□□│    □□□□
│ □□□□□□□□□□│    □□□□
│ □□□□□□□□□□│
│ □□□□□□□□□□│   【简单】
│ □□□□□□□□□□│
│ □□□□□□□□□□│    第1关
│ □□□□□□□□□□│
│ □□□□□□□□□□│   消行:0
│ □□□□□□□□□□│
│ □□□□□□□□□□│   【得分】
│ □□□□□□□□□□│   0
│ □□□□□□□□□□│
│ □□□□□□□□□□│
│ □□□□□□□□□□│
│ □□□□□□□□□□│
└─────────────────────┘
   空格变形,方向控制,回车暂停,Esc退出。[/quote]

hnfeng 发表于 2022-1-13 09:18

好强大,佩服

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.