Board logo

标题: [游戏娱乐] 批处理猜数字游戏共享版 [打印本页]

作者: youxi01    时间: 2007-11-1 14:40     标题: 批处理猜数字游戏共享版

  1. @echo off
  2. ::code by youxi01@cmd_xp
  3. ::由原作品修改而来(http://post.baidu.com/f?kz=137898059),优化了部分代码。
  4. REM 定义屏幕显示方式
  5. title 猜数字游戏(共享版)
  6. color 1f
  7. mode con: cols=50 lines=25
  8. :start
  9. cls
  10. echo    ╔----------------------------------------╗  
  11. echo    ┆             猜数字游戏共享版           ┆
  12. echo    ┆                                        ┆
  13. echo    ┆        说明:猜一个四位的随机数        ┆
  14. echo    ┆                                        ┆
  15. echo    ┆    优化了部分代码,并对输入进行了过滤  ┆
  16. echo    ╚----------------------------------------╝  
  17. echo.
  18. echo          请选择游戏难度
  19. echo     ------------------------------------------
  20. echo        1、最低难度
  21. echo        2、中等难度
  22. echo        3、最高难度
  23. REM 生成系统数字,默认为四位数。采用这种方式,是为了增加随机性。
  24. set/a rnd=%random% %% 8+1          %=设置系统数字的第一位=%
  25. set Snum=%rnd%%random:~-1%%random:~-1%%random:~-1%
  26. set/a flag=20                       %=初始化猜数的次数=%
  27. call :check 1 3 start
  28. REM 初始显示内容;
  29. set SS=1%time:~6,2%
  30. set MM=1%time:~3,2%
  31. set /a Min=1000,Max=9999,flag=20,stime=60,MM=%MM%-100,SS=%SS%-100
  32. set TipInfo=未定
  33. set life=%flag%
  34. goto :%input%
  35. :1 %=========容易等级==============%
  36. cls
  37. echo    ╔----------------------------------------╗  
  38. echo    ┆             猜数字游戏共享版           ┆
  39. echo    ┆                                        ┆
  40. echo    ┆              难度等级:容易            ┆
  41. echo    ┆                                        ┆
  42. echo    ┆        数值在:%Min% - %Max%之间         ┆
  43. echo    ┆                                        ┆
  44. echo    ┆     提示:%TipInfo%      剩余生命:%life%       ┆
  45. echo    ╚----------------------------------------╝
  46. call :check %Min% %Max% 1
  47. call :CheckNum
  48. goto :1
  49. :2 %==============中等难度======%
  50. cls
  51. echo    ╔----------------------------------------╗  
  52. echo    ┆             猜数字游戏共享版           ┆
  53. echo    ┆                                        ┆
  54. echo    ┆              难度等级:中等            ┆
  55. echo    ┆                                        ┆
  56. echo    ┆      提示:%TipInfo%        生命:%life%        ┆
  57. echo    ╚----------------------------------------╝  
  58. call :check 1000 9999 2
  59. call :CheckNum
  60. goto :2
  61. :3 %============最高难度,有时间限制===============%
  62. cls
  63. echo    ╔----------------------------------------╗  
  64. echo    ┆             猜数字游戏共享版           ┆
  65. echo    ┆                                        ┆
  66. echo    ┆              难度等级:困难            ┆
  67. echo    ┆                                        ┆
  68. echo    ┆    提示:%TipInfo%        生命:%life%          ┆
  69. echo    ┆                                        ┆
  70. echo    ┆             还剩下%stime%秒                 ┆
  71. echo    ╚----------------------------------------╝  
  72. call :check 1000 9999 3
  73. call :CheckNum
  74. set SS_=1%time:~6,2%
  75. set MM_=1%time:~3,2%
  76. set/a MM_=%MM_%-100-%MM%,SS_=%SS_%-100-%SS%
  77. set/a stime=60-%MM_%*60-%SS_%
  78. if %stime% LEQ 0 echo 超时 & pause>nul & goto :start
  79. set stime=0%stime% & set stime=%stime:~-2%%=============补齐对象=================%
  80. goto :3
  81. pause>nul
  82. :check MinNum MaxNum Tag1
  83.    set "input=" & echo.
  84.    set /p input=请输入一个[ %1-%2 ]的数字:
  85.    Rem ==============过滤特殊字符===============================
  86.    echo "%input%" |findstr "[<>&~`@#$%^*()-+=_,.?/\|':;]" >nul && (
  87.          echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3)
  88.    Rem ==============验证是否是指定区间的纯数字=================
  89.    set var=0
  90.    set /a var=%input% >nul 2>nul
  91.    if "%var%"=="0" echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
  92.    Rem ==========以上利用了set /a 的特殊性======================
  93.    if %input% LSS %1 echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
  94.    if %input% GTR %2 echo 请输入 %1 到 %2 的纯数字 & pause>nul & goto :%3
  95.    set/a flag-=1
  96.    if %flag% LSS 1 echo 超出生命限制! & pause>nul & goto :start
  97.    goto :eof
  98. :CheckNum
  99.    if %input% EQU %Snum% echo. & echo 恭喜你,猜中了!& pause>nul & exit
  100.    if %input% GTR %Snum% (
  101.       set TipInfo=大了
  102.       if %input% LSS %Max% set Max=%input%)
  103.    if %input% LSS %Snum% (
  104.       set TipInfo=小了
  105.       if %input% GTR %Min% set Min=%input%)
  106.    set life=0%flag%
  107.    set life=%life:~-2%
复制代码

作者: somebody    时间: 2007-11-1 18:23

呵呵,不错,不过还是普通人那个版本比较严密真实点........................................
作者: youxi01    时间: 2007-11-1 18:26

哦,他那个版本,遗憾的是还没玩过啊?!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2