我手搓了个bat_18x18迷宫
今天清理电脑空间偶然间发现藏才桌面角落里的一个bat文件,名称叫“迷宫.bat”,我刚开始还有点好奇,于是双击了该文件。
映入眼帘的是18×18的迷宫……
--------------------------------------
- - - - ----
- ----- --- -------- - -- ---- -
- - - - - - -- ------
--- --- ------- - - - - ---- - -
- - - -- - - - - - ---- -
- ---- -------- -- - ---- - -- - -
- - ------ -- - - - - - -
-- - -- - --- - - --- -- -- - -
- -- -- - - - - - - -- -- - -
- --- - ---- - - - -- - - -- - -
- - - - - - - - - -- -- - -- - -
- - -- - --- - -- - - - -
--- - - - -- ---- - ------ -
- - - -- -- - - - - - - -
-- -- - - - -- -- - - - - ------ -
+ - - -- - - - -
--------------------------------------
:
“+”表示当前所在位置,“-”表示墙。
试着玩了几下,但由于还是个半成品,不大一会就移动不了。
看了下源码,但这一看可就不得了了
@echo off
setlocal enabledelayedexpansion
title 初始化...
set 1=1
for /l %%i in (2,1,324) do (
set %%i=0
)
for /l %%i in (1,1,324) do (
SET %%iz=
)
title
:1
CLS
title 加载中...
echo 加载中,请稍后...
for /l %%i in (1,1,334) do (
if "!%%i!"=="1" (
set %%iz=+
) else (
set %%iz=
)
)
cls
if "!321!"=="1" (
goto end
)
echo --------------------------------------
echo -!292z!!293z!!294z!!295z!!296z!!297z!!298z!-!299z!!300z!!301z!!302z!!303z!!304z!!305z!!306z!!307z!!308z!!309z!!310z!-!311z!!312z!!313z!!314z!!315z!-!316z!!317z!!318z!!319z!----!320z!!321z!
echo -!279z!-----!280z!---!281z!--------!282z!-!283z!!284z!--!285z!----!286z!!287z!!288z!!289z!!290z!!291z!-
echo -!254z!!255z!!256z!!257z!-!258z!!259z!-!260z!!261z!!262z!!263z!!264z!!265z!!266z!-!267z!!268z!!269z!!270z!-!271z!!272z!!273z!-!274z!!275z!!276z!--!278z!------
echo ---!240z!---!241z!-------!242z!-!243z!!244z!-!245z!-!246z!!247z!-!248z!----!249z!!322z!-!250z!!251z!!252z!!253z!-
echo -!217z!-!218z!!219z!!220z!!221z!!222z!!223z!!224z!!225z!!226z!-!227z!!228z!!229z!--!230z!-!231z!!232z!-!233z!-!234z!!235z!-!236z!-!237z!!238z!----!239z!-
echo -!204z!----!205z!--------!206z!!207z!!208z!!209z!--!210z!-!211z!----!212z!-!213z!--!214z!!215z!-!216z!-
echo -!182z!!183z!-!184z!!185z!!186z!!187z!!188z!------!189z!--!190z!!191z!-!192z!!193z!!194z!-!195z!!196z!!197z!!198z!-!199z!!200z!-!201z!!202z!-!203z!-
echo --!174z!-!325z!--!326z!-!327z!!328z!!329z!---!330z!!331z!!332z!-!333z!-!334z!---!175z!--!176z!--!177z!-!178z!!179z!!180z!!181z!-
echo -!153z!!154z!!155z!!156z!--!157z!--!158z!!159z!-!160z!!161z!!162z!-!163z!-!164z!-!165z!-!166z!!167z!!168z!!169z!-!170z!--!171z!--!172z!-!173z!-
echo -!135z!---!136z!-!137z!!138z!!139z!!140z!----!141z!-!142z!-!143z!!144z!!145z!-!146z!--!147z!-!148z!!149z!-!150z!--!151z!-!152z!-
echo -!116z!-!117z!-!118z!-!119z!-!120z!!121z!!122z!!123z!!324z!-!124z!-!125z!!126z!!127z!-!128z!-!129z!--!130z!--!131z!-!132z!--!133z!-!134z!-
echo -!93z!!94z!!95z!!96z!!97z!!98z!!99z!!100z!-!101z!--!102z!-!103z!---!104z!-!105z!!106z!!107z!--!108z!-!109z!!110z!!111z!!112z!-!113z!!114z!-!115z!-
echo ---!75z!-!76z!-!77z!!78z!-!79z!--!80z!!81z!!82z!!83z!!84z!!85z!!86z!----!87z!-!88z!------!89z!!90z!!91z!!92z!-
echo -!50z!!51z!!52z!-!53z!-!54z!!55z!!56z!!57z!--!58z!--!59z!-!60z!-!61z!!62z!-!63z!!64z!-!65z!!66z!!67z!!68z!-!69z!!70z!!71z!!72z!-!73z!-
echo --!34z!--!35z!-!36z!!37z!-!38z!-!39z!!40z!--!41z!--!42z!-!43z!-!44z!!45z!-!46z!!47z!-!48z!------!49z!-
echo !1z!!2z!!3z!-!4z!!5z!!6z!!7z!!8z!-!9z!!10z!!11z!!12z!!13z!!14z!!15z!--!16z!-!17z!!22z!!23z!!24z!-!25z!!26z!-!27z!!28z!!29z!!30z!!31z!!32z!!33z!!323z!-
echo --------------------------------------
title
set /p a=":"
if /i "!a!"=="w" (
if "!108!"=="1" (
set 108=0
set 130=1
goto 1
)
if "!247!"=="1" (
set 247=0
set 272=1
goto 1
)
if "!246!"=="1" (
set 246=0
set 271=1
goto 1
)
if "!271!"=="1" (
set 271=0
set 283=1
goto 1
)
if "!3!"=="1" (
set 3=0
set 34=1
goto 1
)
if "!34!"=="1" (
set 34=0
set 51=1
goto 1
)
if "!52!"=="1" (
set 52=0
set 75=1
goto 1
)
if "!50!"=="1" (
set 50z=0
set 74z=1
goto 1
)
if "!74!"=="1" (
set 74=0
set 93=1
goto 1
)
if "!75!"=="1" (
set 75=0
set 95=1
goto 1
)
if "!50!"=="1" (
set 50=0
set 74=1
goto 1
)
if !93!==1 (
set 93=0
set 116=1
goto 1
)
if "!116!"=="1" (
set "116=0" & set "135=1"
goto 1
)
if "!95!"=="1" (
set "95=0" & set "117=1"
goto 1
)
if "!135!"=="1" (
set "135=0" & set "153=1"
goto 1
)
if "!97!"=="1" (
set "97=0" & set "118=1"
goto 1
)
if "!118!"=="1" (
set "118=0" & set "136=1"
goto 1
)
if "!154!"=="1" (
set "154=0" & set "174=1"
goto 1
)
if "!156!"=="1" (
set "156=0" & set "325=1"
goto 1
)
if "!174!"=="1" (
set "174=0" & set "183=1"
goto 1
)
if "!182!"=="1" (
set "182=0" & set "204=1"
goto 1
)
if "!204!"=="1" (
set "204=0" & set "217=1"
goto 1
)
if "!165!"=="1" (
set "165=0" & set "334=1"
goto 1
)
if "!99!"=="1" (
set "99=0" & set "119=1"
goto 1
)
if "!119!"=="1" (
set "119=0" & set "137=1"
goto 1
)
if "!137!"=="1" (
set "137=0" & set "157=1"
goto 1
)
if "!157!"=="1" (
set "157=0" & set "326=1"
goto 1
)
if "!186!"=="1" (
set "186=0" & set "205=1"
goto 1
)
if "!205!"=="1" (
set "205=0" & set "221=1"
goto 1
)
if "!218!"=="1" (
set "218=0" & set "240=1"
goto 1
)
if "!240!"=="1" (
set "240=0" & set "256=1"
goto 1
)
if "!254!"=="1" (
set "254=0" & set "279=1"
goto 1
)
if "!279!"=="1" (
set "279=0" & set "292=1"
goto 1
)
if "!222!"=="1" (
set "222=0" & set "241=1"
goto 1
)
if "!241!"=="1" (
set "241=0" & set "259=1"
goto 1
)
if "!259!"=="1" (
set "259=0" & set "280=1"
goto 1
)
if "!280!"=="1" (
set "280=0" & set "298=1"
goto 1
)
if "!140!"=="1" (
set "140=0" & set "158=1"
goto 1
)
if "!158!"=="1" (
set "158=0" & set "328=1"
goto 1
)
if "!159!"=="1" (
set "159=0" & set "329=1"
goto 1
)
...
好家伙,满屏的变量差点把我呛到!足足有334个变量,还手搓移动….
本来还有点兴趣,想着能不能完善下,现在嘛……
嗖~~ ≡┏|*´Д`|┛
咳咳,最终还是胜欲占据了上风,我琢磨怎么怎么搞呢…
该代码用数字表示状态,“0”表示空,“1”表示正在该点。“0”用空格表示,“1”用“+”表示。
想想看还是先是手搓了个点位对应图,如下
--------------------------------------
[[-]][=ok][=ok][=ok][=ok][=ok][=ok][=ok][[-]][299][300][301][302][303][304][305][306][307][308][309][310][[-]][311][312][313][314][315][[-]][316][317][318][319][[-]][[-]][[-]][[-]][320][321]
[[-]][=ok][[-]][[-]][[-]][[-]][[-]][=ok][[-]][[-]][[-]][281][[-]][[-]][[-]][[-]][[-]][[-]][[-]][[-]][282][[-]][283][284][[-]][[-]][285][[-]][[-]][[-]][[-]][286][287][288][289][290][291][[-]]
[[-]][=ok][=ok][=ok][=ok][[-]][=ok][=ok][[-]][260][261][262][263][264][265][266][[-]][267][268][269][270][[-]][271][272][273][[-]][274][275][276][[-]][[-]][278][[-]][[-]][[-]][[-]][[-]][[-]]
[[-]][[-]][[-]][=ok][[-]][[-]][[-]][=ok][[-]][[-]][[-]][[-]][[-]][[-]][[-]][242][[-]][243][244][[-]][245][[-]][246][247][[-]][248][[-]][[-]][[-]][[-]][249][322][[-]][250][251][252][253][[-]]
[[-]][=ok][[-]][=ok][=ok][=ok][=ok][=ok][=ok][=ok][=ok][=ok][[-]][227][228][229][[-]][[-]][230][[-]][231][232][[-]][233][[-]][234][235][[-]][236][[-]][237][238][[-]][[-]][[-]][[-]][239][[-]]
[[-]][=ok][[-]][[-]][[-]][[-]][=ok][[-]][[-]][[-]][[-]][[-]][[-]][[-]][[-]][206][207][208][209][[-]][[-]][210][[-]][211][[-]][[-]][[-]][[-]][212][[-]][213][[-]][[-]][214][215][[-]][216][[-]]
[[-]][182][183][[-]][184][185][186][187][188][[-]][[-]][[-]][[-]][[-]][[-]][189][[-]][[-]][190][191][[-]][192][193][194][[-]][195][196][197][198][[-]][199][200][[-]][201][202][[-]][203][[-]]
[[-]][[-]][174][[-]][325][[-]][[-]][326][[-]][327][328][329][[-]][[-]][[-]][330][331][332][[-]][333][[-]][334][[-]][[-]][[-]][175][[-]][[-]][176][[-]][[-]][177][[-]][178][179][180][181][[-]]
[[-]][=ok][154][=ok][156][[-]][[-]][157][[-]][[-]][158][159][[-]][160][161][162][[-]][163][[-]][164][[-]][165][[-]][166][167][168][169][[-]][170][[-]][[-]][171][[-]][[-]][172][[-]][173][[-]]
[[-]][=ok][[-]][[-]][[-]][=ok][[-]][=ok][=ok][139][140][[-]][[-]][[-]][[-]][141][[-]][142][[-]][143][144][145][[-]][146][[-]][[-]][147][[-]][148][149][[-]][150][[-]][[-]][151][[-]][152][[-]]
[[-]][=ok][[-]][=ok][[-]][=ok][[-]][=ok][[-]][120][121][122][123][324][[-]][124][[-]][125][126][127][[-]][128][[-]][129][[-]][[-]][130][[-]][[-]][131][[-]][132][[-]][[-]][133][[-]][134][[-]]
[[-]][=ok][=ok][=ok][=ok][=ok][=ok][=ok][=ok][[-]][101][[-]][[-]][102][[-]][103][[-]][[-]][[-]][104][[-]][105][106][107][[-]][[-]][108][[-]][109][110][111][112][[-]][113][114][[-]][115][[-]]
[[-]][[-]][[-]][=ok][[-]][=ok][[-]][=ok][=ok][[-]][=79][[-]][[-]][=80][=81][=82][=83][=84][=85][=86][[-]][[-]][[-]][[-]][=87][[-]][=88][[-]][[-]][[-]][[-]][[-]][[-]][=89][=90][=91][=92][[-]]
[[-]][=ok][=ok][=ok][[-]][=ok][[-]][=ok][=55][=56][=57][[-]][[-]][=58][[-]][[-]][=59][[-]][=60][[-]][=61][=62][[-]][=63][=64][[-]][=65][=66][=67][=68][[-]][=69][=70][=71][=72][[-]][=73][[-]]
[[-]][[-]][=ok][[-]][[-]][=ok][[-]][=ok][=ok][[-]][=38][[-]][=39][=40][[-]][[-]][=41][[-]][[-]][=42][[-]][=43][[-]][=44][=45][[-]][=46][=47][[-]][=48][[-]][[-]][[-]][[-]][[-]][[-]][=49][[-]]
[=ok][=ok][=ok][[-]][=ok][=ok][=ok][=ok][=ok][[-]][=9=][=10][=11][=12][=13][=14][=15][[-]][[-]][=16][[-]][=17][=22][=23][=24][[-]][=25][=26][[-]][=27][=28][=29][=30][=31][=32][=33][323][[-]]
--------------------------------------
这里的”[=ok]”表示以前已经做完的移动路径;”[[-]]”表示墙;[数字]/[=数字]表示原来的!数字!,至于加的“=”或者在“[-]”再嵌套层“[]”是为了对其,还想了好久才想出这个比较美观的
随后我照着点位图手搓出剩下全部的每个点位的上、下、左、右,再经过多次的bug修复,还添加了输入r重玩的功能,最后添加了游戏结束,至此,游戏成功闭环!
整整47.5kb,748个if!
完整代码如下,点击下载
最后,感谢观看!如有任何疑问请点击此处