标题: [游戏娱乐] 批处理猜数字游戏共享版 [打印本页]
作者: youxi01 时间: 2007-11-1 14:40 标题: 批处理猜数字游戏共享版
- @echo off
- ::code by youxi01@cmd_xp
- ::由原作品修改而来(http://post.baidu.com/f?kz=137898059),优化了部分代码。
-
- REM 定义屏幕显示方式
- title 猜数字游戏(共享版)
- color 1f
- mode con: cols=50 lines=25
-
- :start
- cls
- echo ╔----------------------------------------╗
- echo ┆ 猜数字游戏共享版 ┆
- echo ┆ ┆
- echo ┆ 说明:猜一个四位的随机数 ┆
- echo ┆ ┆
- echo ┆ 优化了部分代码,并对输入进行了过滤 ┆
- echo ╚----------------------------------------╝
- echo.
- echo 请选择游戏难度
- echo ------------------------------------------
- echo 1、最低难度
- echo 2、中等难度
- echo 3、最高难度
-
- REM 生成系统数字,默认为四位数。采用这种方式,是为了增加随机性。
- set/a rnd=%random% %% 8+1 %=设置系统数字的第一位=%
- set Snum=%rnd%%random:~-1%%random:~-1%%random:~-1%
- set/a flag=20 %=初始化猜数的次数=%
-
- call :check 1 3 start
-
- REM 初始显示内容;
- set SS=1%time:~6,2%
- set MM=1%time:~3,2%
- set /a Min=1000,Max=9999,flag=20,stime=60,MM=%MM%-100,SS=%SS%-100
-
- set TipInfo=未定
- set life=%flag%
- goto :%input%
-
- :1 %=========容易等级==============%
- cls
- echo ╔----------------------------------------╗
- echo ┆ 猜数字游戏共享版 ┆
- echo ┆ ┆
- echo ┆ 难度等级:容易 ┆
- echo ┆ ┆
- echo ┆ 数值在:%Min% - %Max%之间 ┆
- echo ┆ ┆
- echo ┆ 提示:%TipInfo% 剩余生命:%life% ┆
- echo ╚----------------------------------------╝
- call :check %Min% %Max% 1
- call :CheckNum
- goto :1
-
- :2 %==============中等难度======%
- cls
- echo ╔----------------------------------------╗
- echo ┆ 猜数字游戏共享版 ┆
- echo ┆ ┆
- echo ┆ 难度等级:中等 ┆
- echo ┆ ┆
- echo ┆ 提示:%TipInfo% 生命:%life% ┆
- echo ╚----------------------------------------╝
- call :check 1000 9999 2
- call :CheckNum
- goto :2
-
- :3 %============最高难度,有时间限制===============%
- cls
- echo ╔----------------------------------------╗
- echo ┆ 猜数字游戏共享版 ┆
- echo ┆ ┆
- echo ┆ 难度等级:困难 ┆
- echo ┆ ┆
- echo ┆ 提示:%TipInfo% 生命:%life% ┆
- echo ┆ ┆
- echo ┆ 还剩下%stime%秒 ┆
- echo ╚----------------------------------------╝
- call :check 1000 9999 3
- call :CheckNum
-
- set SS_=1%time:~6,2%
- set MM_=1%time:~3,2%
- set/a MM_=%MM_%-100-%MM%,SS_=%SS_%-100-%SS%
- set/a stime=60-%MM_%*60-%SS_%
- if %stime% LEQ 0 echo 超时 & pause>nul & goto :start
- set stime=0%stime% & set stime=%stime:~-2%%=============补齐对象=================%
- goto :3
-
- pause>nul
-
- :check MinNum MaxNum Tag1
- set "input=" & echo.
- set /p input=请输入一个[ %1-%2 ]的数字:
- Rem ==============过滤特殊字符===============================
- echo "%input%" |findstr "[<>&~`@#$%^*()-+=_,.?/\|':;]" >nul && (
- echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3)
- Rem ==============验证是否是指定区间的纯数字=================
- set var=0
- set /a var=%input% >nul 2>nul
- if "%var%"=="0" echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
-
- Rem ==========以上利用了set /a 的特殊性======================
- if %input% LSS %1 echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
- if %input% GTR %2 echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
- set/a flag-=1
- if %flag% LSS 1 echo 超出生命限制! & pause>nul & goto :start
- goto :eof
-
- :CheckNum
- if %input% EQU %Snum% echo. & echo 恭喜你,猜中了!& pause>nul & exit
- if %input% GTR %Snum% (
- set TipInfo=大了
- if %input% LSS %Max% set Max=%input%)
- if %input% LSS %Snum% (
- set TipInfo=小了
- if %input% GTR %Min% set Min=%input%)
- set life=0%flag%
- set life=%life:~-2%
复制代码
作者: somebody 时间: 2007-11-1 18:23
呵呵,不错,不过还是普通人那个版本比较严密真实点........................................
作者: youxi01 时间: 2007-11-1 18:26
哦,他那个版本,遗憾的是还没玩过啊?!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |