新建文件改名为扫雷.bat即可
代码如下:
rem 转载请说明原作者:bat吧明月嫣然若夕
@echo off
setlocal enabledelayedexpansion
mode con: cols=25 lines=15
title mine clearance
color 3f
set cheat=0
set die=1
set s=0
for /l %%b in (1,1,5) do (
set /a x=1+!random!%%5
set /a y=1+!random!%%5
set bomb%%b=!x!!y!
)
:scans
for /l %%a in (1,1,4) do (
set /a A+=1
for /l %%k in (!A!,1,5) do (
if !bomb%%a!==!bomb%%k! (
set /a x=1+!random!%%5
set /a y=1+!random!%%5
set bomb%%a=!x!!y!
goto scans
)
)
)
for /l %%x in (1,1,5) do (
for /l %%y in (1,1,5) do (
set x%%xy%%y=?
)
)
:game
if !s!==20 goto win
call :display
call :input
:display
if !cheat!==1 (
for /l %%f in (1,1,5) do set bombc%%f=!bomb%%f!
) else (
for /l %%f in (1,1,5) do set bombc%%f=
)
cls
echo.
echo 1 2 3 4 5
echo ___________
for /l %%d in (1,1,5) do echo %%d ^|!x1y%%d!^|!x2y%%d!^|!x3y%%d!^|!x4y%%d!^|!x5y%%d!^| ^|!bombc%%d!
echo ~~~~~~~~~~~
echo text:!text!
echo.
goto :eof
:input
set /p input=(xy):
if /i !input!==command goto command
for /l %%X in (1,1,5) do (
for /l %%Y in (1,1,5) do (
set XY=%%X%%Y
if !input!==!XY! goto ie
)
)
goto game
goto :eof
:ie
set bombs=0
for /l %%b in (1,1,5) do if !input!==!bomb%%b! goto lose
set Y=%input:~1,1%
set /a A=!Y!-1
set /a B=!Y!+1
set X=%input:~0,1%
set /a C=!X!-1
set /a D=!X!+1
for /l %%i in (1,1,5) do if !bomb%%i!==!Y!!C! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!Y!!D! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!A!!C! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!A!!X! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!A!!D! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!B!!C! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!B!!X! set /a bombs+=1
for /l %%i in (1,1,5) do if !bomb%%i!==!B!!D! set /a bombs+=1
set x!X!y%Y%=!bombs!
set /a s+=1
goto game
:lose
cls
set Y=%input:~1,1%
set X=%input:~0,1%
set x!X!y%Y%=*
if !die!==0 goto game
call :display
echo you lose!
echo !input!
pause>nul
exit
:command
cls
echo commands:
echo -----------------------
echo msg [内容] 显示内容
echo cheaton 显示雷位
echo cheatoff 关闭雷位
echo dieon 开启生命
echo dieoff 关闭生命
echo sign [坐标] 标记位置
echo cancel [坐标] 取消标记
echo win 直接获胜
echo back 返回游戏
echo -----------------------
set /p cmdinput=^>^>^>
if /i !cmdinput!==back goto game
if /i !cmdinput!==win goto win
if /i !cmdinput!==cheaton set cheat=1&goto game
if /i !cmdinput!==cheatoff set cheat=0&goto game
if /i !cmdinput!==dieon set die=1&goto game
if /i !cmdinput!==dieoff set die=0&goto game
set aaa=%cmdinput:~0,3%
set bbb=%cmdinput:~4,20%
if /i !aaa!==msg set text=!bbb!&goto game
set aaa=%cmdinput:~0,4%
set bbb=%cmdinput:~5,1%
set ccc=%cmdinput:~6,1%
if /i !aaa!==sign set x!bbb!y%ccc%==P&goto game
set aaa=%cmdinput:~0,6%
set bbb=%cmdinput:~7,1%
set ccc=%cmdinput:~8,1%
if /i !aaa!==cancel set x!bbb!y%ccc%==?&goto game
goto command
:win
cls
call :display
echo you win!
pause>nul
exit