Push Box Game
Updated on 2009-8-29
Pure batch, no third parties, no temporary files generated (except player's records), compact, freely add levels, convert and put at the end
Updated on 2009-08-30
No temporary files even for player records.
Updated on 2009-09-06
Eliminated the flickering problem when refreshing the screen
Updated on 2009-09-14
Supports super large maps
Corrected a small bug in the enhanced version on 2010-03-22
[ Last edited by netbenton on 2010-3-22 at 00:19 ]
Updated on 2009-8-29
Pure batch, no third parties, no temporary files generated (except player's records), compact, freely add levels, convert and put at the end
Updated on 2009-08-30
No temporary files even for player records.
Updated on 2009-09-06
Eliminated the flickering problem when refreshing the screen
Updated on 2009-09-14
Supports super large maps
Corrected a small bug in the enhanced version on 2010-03-22
@goto :begin 1@ This is the record data line, please do not delete or move!
e 100 cd 16 86 c4 b4 02 cd 10 b4 4C CD 21
g
:begin
@echo off
pushd "%~dp0"
chcp 437 >nul
graftabl 936 >nul
rem color 2f
set "a=i83=10;i1=7;i72=1;i80=3;i75=2;i77=4;i73=8;i81=9;i57=5;i28=6;c1=n-;c2=m-;c3=n+;c4=m+;∷=^^!r!n!.!m!^^!-∷;☆=^^!r!n!.!m!^^!-☆;▓∷=▓-∷;▓☆=★-∷;★∷=▓-☆;★☆=★-☆;原=∷
set %a:;=&set %
setlocal enabledelayedexpansion
for /f "tokens=2,3 delims=囧" %%a in (%~nx0) do (
set var=!var!%%a
if "%%b" equ "" (
set lev!n!=!var!
set/a n+=1
set var=
)
)
set a=a=■;b=∷;c=▓;d=☆;e=★;f=大;tc=abcdefg;tn=1234567890;g=;/a end=n,z=8180,x=0,n=0,m=0;$a=
set cr=^
&set %a:;=&set %
set/p yg=< %~nx0 >nul
set yg=!yg:~13,52!
set lev=%yg:@=&rem %
set yg= !yg:* =!
set/a n0=0,n9=17,m0=-1
goto :skend
:restart
endlocal&set lev=%lev%
:skend
cls&setlocal enabledelayedexpansion
set str=!lev%lev%!
for /l %%a in (1,1,14) do (set/a "y=(z-x)/2+x"
for %%b in (!y!) do if "!str:~%%b,1!" equ "" (set/a z=y) else (set/a x=y)
)
for /l %%a in (0,1,!x!) do (set/a t=%%a+1
for %%b in (!t!) do (
for /f "tokens=1-3 delims=-" %%1 in ("!str:~%%a,1!-!str:~%%b,1!-!n!") do (
if "!tc:%%1=!" neq "!tc!" (
if "!tn:%%2=!" neq "!tn!" (set k=%%2) else (set k=1)
for /l %%k in (1,1,!k!) do (set r!n!.!m!=!%%1!&set rr!%%1!=!n!.!m!
if "!%%1!" equ "☆" set "ke=!ke!^!r!n!.!m!^!"
set /a m+=1
)
) else (if "%%1" equ " " set /a n+=1,m=0)
)
))
setlocal enabledelayedexpansion
for /l %%a in (1,1,!n!) do set lev%%a=
set /a n=!rr大:.=,m=!
set ji=%ke%&set ji=!ji:☆=★!
if "!yg: %lev% =!" neq "!yg!" (set cyg=☆已过☆) else set cyg=
title 批处理推箱子 第%lev%关 !cyg!
:loop
(
if !n! geq !n9! set /a n0=n-17,n9=n
if !n0! lss 0 set /a n0=0,n9=17
if !n! lss !n0! set /a n0=n,n9=n+17
if !m! geq !m9! set /a m0=m-33,m9=m
if !m0! lss 0 set /a m0=0,m9=33
if !m! lss !m0! set /a m0=m,m9=m+33
set/a en0=n0-2,em0=m0-2,en9=n9+2,em9=m9+2
if "!m0!!m9!" neq "%m0%%m9%" (
set ebs=
for /l %%b in (!em0!,1,!em9!) do (
set "ebs=!ebs!^!@%%b^!^^^!$a^!@%%b^!^^^!
)
)
)
for /l %%a in (!en0!,1,!en9!) do (
for %%c in ("!ebs:@=r%%a.!") do (
for %%d in ("%%~c") do (set ebuf=!ebuf!%%~d!cr!)
)
)
if "%ke%" equ "!ji!" cls&echo !ebuf! 恭喜你过关了!&pause&goto me9
set ebuf=!ebuf!方向键移动,空格后退一步,回车重来, Pu上一关,Pd下一关,Esc退出,Del删除记录。玩法:用“大”把“▓”全部推到“☆”内为过关
set/p=!ebuf!<nul
set ebuf=
debug <%~nx0 >nul
set err=%errorlevel%
set in=!i%err%!
if !in! equ 0 goto :loop
if !in! gtr 4 goto :me%in%
set/a sm=m,sn=n,!c%in%!=1,bm=m,bn=n,!c%in%!=1
for /f "tokens=1,2" %%a in ("!r%bn%.%bm%! !r%bn%.%bm%!!r%n%.%m%!") do (
for %%c in ("!%%a!!%%b!") do (
for /f "tokens=1,2 delims=-" %%1 in (%%c) do (
if "!%%b!" neq "" set save=r%sn%.%sm%=!r%sn%.%sm%!^&set r%bn%.%bm%=!r%bn%.%bm%!^&set r%n%.%m%=!r%n%.%m%!^&set 原=%原%^&set/a m=%sm%,n=%sn%
set r%sn%.%sm%=!原!&set r%bn%.%bm%=大&set r%n%.%m%=%%1&set/a m=bm,n=bn&set 原=%%2
goto :loop
)
set/a m=sm,n=sn
)
)
goto :loop
:me5
if defined save (
set r%n%.%m%=%原%
set %save%
set save=
)
goto :loop
:me6
endlocal&goto :restart
:me7
if "!yg:~50!" neq "" set yg=!yg:* =!&goto :me7
set a=a 10d`db "!lev!@!yg! "``w`q
(echo %a:`=&echo;%) |debug %~nx0 >nul
exit /b
:me8
set/a lev-=2
:me9
set/a lev+=1
if !lev! equ !end! set lev=1
if !lev! equ 0 set/a lev=end-1
endlocal&(if %in% leq 4 set yg=!yg!!lev! )&set lev=%lev%&goto :restart
:me10
endlocal&set yg=&set lev=1
for /l %%a in (1,1,52) do set yg=!yg!
goto :restart
:囧a9a ab8a ab4d2fba ab2a2b4a ab2a4b2a aba2b5a ab4c2b2a ab8a ab8a a9a
:囧a8g ab3ab2a abdbcdba a2ca2b2a ab2a2ca2 abdfb3a ab2ab3a a8
:囧a9a4 abdb2db2dbdba5 ab9b6a5 abdabda2badb9a aba2b2a9a2b3a abcbcb9b6a abcb3cbcba7b3a ab3cb2a4g5a5 a4bcba g3abfba g3a5
:囧ga4g5 gab2a a2dfa abdca6 abc2bcb2a2 abd2b4a2 a4b2a4 g3a4
:囧g5a4g a6b2a abcb2cb2a abab2daba2 ab2dbadfba a2cabdcb2a gab3a5 ga5
:囧g5a6g g5ab4a ga5ba2ba2 gabcb2cb2cba a2badada2dba abcb2cda2dba ab2d2bcfbca2 a8b2a g7a4
:囧a9g2 ab7a ab2cbcbca a2baca2ba gabd2bd2a2 ga2d2bd2ba g2aba2caba2 g2acbcbcb2a g2ab6fa g2a9
:囧a5g7 ab3a8 abfdbdbdbdba a2bababababa gabcbcbcbcba ga6b2a3 g6a4
:囧g4a4g a5b2a abcb3ca ab2dadba a2ba3ba2 gabdadb2a gacbfbcba gab2a5 ga4
:囧g2a8g a3b2fb3a ab3cbcb2a ab2cbcbcba a5ca5 g3a2bdbd2a g3ab2dab2a g3abdb3da g3a4b2a2 g6a4
:囧a9g ab2fb4a ac7a ad3ad3a ad7a ac3bc3a ab7a a9
:囧a9ag ab8a2 abcacacacfa adbdcd3cda adbdcd3cda abcacacaca2 ab8a a9a
:囧a2 a9a ab2ab2ad2a afbcbcbdba ab3cb2cba abababadba a9a
:囧g9g7a4g9g2 g5a5g3a4b2a a4gab3a6b4a9a ab2a3bab8ab9b2a abcd5ababcbabad2ab4c2aba ab2a2d3cb2abcabad2b2a2b3cba3 ab4ca2cabacbcbad2ab2a2cabcb2a abcacb3cb2abcb2ad2b3ab2cbcb2a a2b3a3cabad3a2d2ab2abcacb3a ga2ba2bab3ad2a3bdb3abcbcba3 a3bab2a9ab2ab2ab3a4 ab7a2b6ab2ab4a6 abcacacbab3cbcb2a9ab2a adcdb2cbab2cbcbcb8cb3ca ad3a2b2a5ca9b2dadba a4b3a6bdbd2ab3a2ba3ba2 g3ab2db2cbab2dab2adaca2bdadb2a g3a3d2bcbabdb3dab4acb3cba g3a3c2bcbaba2b2a2dacbab2a5 ga3bdcdbab3a6b3a2ba2 gab2cd3ca5g4adacab2a gab3a2dcbag6a2b5a2 ga6b3a囧@
:囧g6abdaca3 g6a5g6ab4a g9g8afba3 g9g8a4
:囧g9g7a4 g5a5g3a4b2a a4gab3a6b4a9a ab2a3bab8ab9b2a abcd5ababcbabad2ab4c2aba ab2a2d3cb2abcabad2b2a2b3cba3 ab4ca2cabacbcbad2ab2a2cabcb2a abcacb3cb2abcb2ad2b3ab2cbcb2a a2b3a3cabad3a2d2ab2abcacb3a ga2ba2bab3ad2a3bdb3abcbcba3 a3bab2a9ab2ab2ab3a4 ab7a2b6ab2ab4a6 abcacacbab3cbcb2a9ab2a adcdb2cbab2cbcbcb8cb3ca ad3a2b2a5ca9b2dadba a4b3a6bdbd2ab3a2ba3ba2 g3ab2db2cbab2dab2adaca2bdadb2a g3a3d2bcbabdb3dab4acb3cba g3a3c2bcbaba2b2a2dacbab2a5 ga3bdcdbab3a6b3a2ba2 gab2cd3ca5g4adacab2a gab3a2dcbag6a2b5a2 ga6b3ag6ab囧@
:囧daca3 g6a5g6ab4a g9g8afba3 g9g8aba2g9g9g9g9g3a7 g9g8ab2ag9g9g9g9g3adbdbda g9g8ab2ag9g9g9g9g3ab5a g9g8ab2ag9g9g9g9g3adbdbda g9g8ab2ag9g9g9g9g3ab5a g9g8ab2ag9g9g9g9g3adb4a g9g8ab2ag9g9g9g9g3a4ba2 g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g9g9g6aba g9g8ab2ag9g9g2a7g9g6aba g9g8ab2ag9g9g2ab5ag9g6aba g9g8ab2ag9g9g2囧@
:囧ab5ag9g6aba g9g8ab2ag9g9g2acbcbcag9g6aba g9g8ab2ag9g9g2ab5ag9g6aba g9g8ab2ag9g9g2acbcbcag9g6aba g9g8ab2a9a9a4b5a9a8ba g9g8ab4cb9b9b9b9b6a g9g8ab9b9b9b9b9b2a g9g8a9a9a9a9a9a4 [ Last edited by netbenton on 2010-3-22 at 00:19 ]
Recent Ratings for This Post
( 11 in total)
Click for details
| Rater | Score | Time |
|---|---|---|
| yishanju | +15 | 2009-08-26 16:48 |
| ficn | +1 | 2009-08-27 08:52 |
| 523066680 | +15 | 2009-08-29 06:10 |
| slore | +20 | 2009-09-06 02:05 |
| tireless | +15 | 2009-09-06 08:02 |
| moniuming | +15 | 2009-09-06 23:59 |
| lotus516 | +8 | 2009-09-11 01:47 |
| jmz573515 | +15 | 2009-09-17 05:56 |
| sl543001 | +2 | 2009-10-01 17:13 |
| zouzhxi | +4 | 2009-10-05 17:06 |
| cup319 | +1 | 2010-07-07 23:58 |

