[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[游戏娱乐] 批处理猜数字游戏文曲星版

在论坛里搜索了一下,只搜到了youxi01编写的一个共享版,运行了一下看是猜大小的。我来发个文曲星版的,大概以前的文曲星上都带有这种猜数字游戏吧,肯定会玩吧。呵呵,不多说了,大家先玩玩,有问题就指出啊!
  1. 更新历史:
  2. 2008.11.28  经wxcute兄提示,颜色换了个不晃眼的,右栏提示合为一行。
  3. 2008.11.29  对输入进行了更细致的判断,可能有些繁琐,大家有好的代码还望提出!
  4. 【仍存问题】:若输入四个数字中有重复的,程序运行会出错。解决方法:1.对输入进行判断,若发现重复数字,则提示重新输入。2.重复数字在程序中只算出现一次(现为数字重复几次则提示中相应加几个)。个人认为方法1较好,写了一段代码可是比较繁琐,看大家有没有精简一点的判断是否出现重复数字的代码!
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. color 31
  4. mode con cols=77 lines=26
  5. set num=123456789
  6. for /l %%i in (1 1 50) do (
  7.     set /a num1=!random!%%9+1
  8.     call set num=%%num:!num1!=%%!!num1!
  9. )
  10. set str=!num:~,4!
  11. set /a count=0
  12. set "ok=                                                                                                    "
  13. :loop
  14. cls
  15. set /a times=10-!count!
  16. if !count! equ 9 (echo 你还有最后一次机会) else echo 你还有!times!次机会
  17. echo.
  18. set /p=                    ╭─────────╮                  │已猜数字:<nul&echo.
  19. set /p=    ╭───────┤ 猜数字(文曲星版) ├───────╮  │<nul&set /p=!ok:~,11!<nul 2>nul&echo.
  20. set /p=    │              ╰─────────╯              │  │<nul&echo.
  21. set /p=    │                                                  │  │<nul&set /p=!ok:~11,11!<nul 2>nul&echo.
  22. set /p=    │      这个游戏想必大家都在文曲星上玩过吧!本程序  │  │<nul&echo.
  23. set /p=    │                                                  │  │<nul&set /p=!ok:~22,11!<nul 2>nul&echo.
  24. set /p=    │  用批处理实现了此游戏。大家还记得怎么玩吧?简介: │  │<nul&echo.
  25. set /p=    │                                                  │  │<nul&set /p=!ok:~33,11!<nul 2>nul&echo.
  26. set /p=    │  系统随机生成数字各不相同(不包括0)的四位数,玩家 │  │<nul&echo.
  27. set /p=    │                                                  │  │<nul&set /p=!ok:~44,11!<nul 2>nul&echo.
  28. set /p=    │  有十次机会来猜测,其中每猜一次提示一次 (A:数对位 │  │<nul&echo.
  29. set /p=    │                                                  │  │<nul&set /p=!ok:~55,11!<nul 2>nul&echo.
  30. set /p=    │  对,B:数对位错)。如系统生成数为6705,则1375为1A1 │  │<nul&echo.
  31. set /p=    │                                                  │  │<nul&set /p=!ok:~66,11!<nul 2>nul&echo.
  32. set /p=    │  B,6750为2A2B。输入有误不减少剩余次数!         │  │<nul&echo.
  33. set /p=    │                                                  │  │<nul&set /p=!ok:~77,11!<nul 2>nul&echo.
  34. set /p=    │      祝大家玩的愉快,有错误请指出啊!             │  │<nul&echo.
  35. set /p=    │                                                  │  │<nul&set /p=!ok:~88,11!<nul 2>nul&echo.
  36. set /p=    │                                code by lhjoanna  │  │<nul&echo.
  37. set /p=    │                                                  │  │<nul&set /p=!ok:~99,11!<nul 2>nul&echo.
  38. set /p=    ╰─────────────────────────╯  │<nul&echo.
  39. echo.                                                         
  40. set /a a=0,b=0
  41. set /p input=请输入一个四位各不相同的四位数:
  42. for /l %%i in (0 1 3) do (
  43.    set ss=!input:~%%i,1!
  44.    if "!ss!" equ " " echo 输入有空格,请重新输入!&pause>nul&goto loop
  45.    if "!ss!" equ "" echo 输入过短,请重新输入!&pause>nul&goto loop
  46.    if !ss! equ 0 echo 数字不包括0,请重新输入!&pause>nul&goto loop
  47.    if not !ss! gtr 0 echo 包含非法字符,请重新输入!&pause>nul&goto loop
  48.    if not !ss! leq 9 echo 包含非法字符,请重新输入!&pause>nul&goto loop
  49. )
  50. set s=!input:~4,1!
  51. if not "!s!" equ "" echo 输入过长,请重新输入!&pause>nul&goto loop
  52. for /l %%i in (0 1 3) do (
  53.     set n=!input:~%%i,1!
  54.     set s=!str:~%%i,1!
  55.     if !n! equ !s! ( set /a a+=1 ) else (
  56.        set str_=!str!
  57.        for /l %%j in (0 1 3) do (
  58.            set s_=!str_:~%%j,1!
  59.            if !n! equ !s_!  set /a b+=1
  60.        )
  61.     )
  62. )
  63. set /a count+=1
  64. if !input! equ !str! goto reward
  65. if !count! equ 1 set ok=
  66. set "ok=!ok!!count!.!input! !a!A!b!B"
  67. if !count! equ 10 goto punish
  68. if !count! leq 9 goto loop
  69. pause
  70. :reward
  71. for /l %%i in (1 1 4) do (
  72.     cls&color c1
  73.     ping -n 1 127.1>nul
  74.     cls&color e1
  75.     ping -n 1 127.1>nul
  76.     cls&color 91
  77.     ping -n 1 127.1>nul
  78. )
  79. msg %username% 恭喜,你猜中了!你真聪明!
  80. goto begin
  81. :punish
  82. for /l %%i in (1 1 6) do (
  83.     cls&color 71
  84.     ping -n 1 127.1>nul
  85.     cls&color 81
  86.     ping -n 1 127.1>nul
  87. )
  88. msg %username% 唉,没机会了,下次吧!!正确答案为!str!
  89. goto begin
复制代码
嘿,大家玩的愉快哦!
1

评分人数

很不错,不过论坛也是有猜数字游戏的。

Batman 的猜字游戏
http://bbs.bathome.net/thread-1678-1-4.html

配色很伤眼睛哦,建议改深点儿的颜色。
右拦改横向显示比较直观:
1A2B 1234
0A1B 5678

color 配色:
纯净版:无color
朴素版:color 71
绿素版:color 31
黑客版:color 02
贴字版:color 13
眼晕版:color 14
提神版:color 1a
警告版:color 4e
模糊版:color 23
……
……

TOP

跟着wxcute兄长见识啊,原来配色还有这么多讲究。呵呵,换个绿素版的,应该还好吧。还有就是把右栏改为一行了,这样看起来比较简洁吧。更新信息在顶楼列出,谢谢wxcute兄!


哦,看了batman的猜数字游戏,很好啊,也是文曲星版的。呵呵,我说怎么没搜到了,batman上面写的是猜字游戏。研究下!!

TOP

太经典了,楼主太强了!

TOP

返回列表