一个用bat写的扫雷游戏
  • 板块灌水区
  • 楼主Yxq20150814
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/25 17:43
  • 上次更新2024/7/25 18:10:54
查看原帖
一个用bat写的扫雷游戏
1400438
Yxq20150814楼主2024/7/25 17:43

一个用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

原文链接:https://blog.csdn.net/GoodGameWhyNot/article/details/138324334

2024/7/25 17:43
加载中...