返回列表 发帖

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

在论坛里搜索了一下,只搜到了youxi01编写的一个共享版,运行了一下看是猜大小的。我来发个文曲星版的,大概以前的文曲星上都带有这种猜数字游戏吧,肯定会玩吧。呵呵,不多说了,大家先玩玩,有问题就指出啊!
更新历史:
2008.11.28  经wxcute兄提示,颜色换了个不晃眼的,右栏提示合为一行。
2008.11.29  对输入进行了更细致的判断,可能有些繁琐,大家有好的代码还望提出!
【仍存问题】:若输入四个数字中有重复的,程序运行会出错。解决方法:1.对输入进行判断,若发现重复数字,则提示重新输入。2.重复数字在程序中只算出现一次(现为数字重复几次则提示中相应加几个)。个人认为方法1较好,写了一段代码可是比较繁琐,看大家有没有精简一点的判断是否出现重复数字的代码!COPY
@echo off&setlocal enabledelayedexpansion
:begin
color 31
mode con cols=77 lines=26
set num=123456789
for /l %%i in (1 1 50) do (
    set /a num1=!random!%%9+1
    call set num=%%num:!num1!=%%!!num1!
)
set str=!num:~,4!
set /a count=0
set "ok=                                                                                                    "
:loop
cls
set /a times=10-!count!
if !count! equ 9 (echo 你还有最后一次机会) else echo 你还有!times!次机会
echo.
set /p=                    ╭─────────╮                  │已猜数字:<nul&echo.
set /p=    ╭───────┤ 猜数字(文曲星版) ├───────╮  │<nul&set /p=!ok:~,11!<nul 2>nul&echo.
set /p=    │              ╰─────────╯              │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~11,11!<nul 2>nul&echo.
set /p=    │      这个游戏想必大家都在文曲星上玩过吧!本程序  │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~22,11!<nul 2>nul&echo.
set /p=    │  用批处理实现了此游戏。大家还记得怎么玩吧?简介: │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~33,11!<nul 2>nul&echo.
set /p=    │  系统随机生成数字各不相同(不包括0)的四位数,玩家 │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~44,11!<nul 2>nul&echo.
set /p=    │  有十次机会来猜测,其中每猜一次提示一次 (A:数对位 │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~55,11!<nul 2>nul&echo.
set /p=    │  对,B:数对位错)。如系统生成数为6705,则13751A1 │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~66,11!<nul 2>nul&echo.
set /p=    │  B,67502A2B。输入有误不减少剩余次数!         │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~77,11!<nul 2>nul&echo.
set /p=    │      祝大家玩的愉快,有错误请指出啊!             │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~88,11!<nul 2>nul&echo.
set /p=    │                                code by lhjoanna  │  │<nul&echo.
set /p=    │                                                  │  │<nul&set /p=!ok:~99,11!<nul 2>nul&echo.
set /p=    ╰─────────────────────────╯  │<nul&echo.
echo.                                                         
set /a a=0,b=0
set /p input=请输入一个四位各不相同的四位数:
for /l %%i in (0 1 3) do (
   set ss=!input:~%%i,1!
   if "!ss!" equ " " echo 输入有空格,请重新输入!&pause>nul&goto loop
   if "!ss!" equ "" echo 输入过短,请重新输入!&pause>nul&goto loop
   if !ss! equ 0 echo 数字不包括0,请重新输入!&pause>nul&goto loop
   if not !ss! gtr 0 echo 包含非法字符,请重新输入!&pause>nul&goto loop
   if not !ss! leq 9 echo 包含非法字符,请重新输入!&pause>nul&goto loop
)
set s=!input:~4,1!
if not "!s!" equ "" echo 输入过长,请重新输入!&pause>nul&goto loop
for /l %%i in (0 1 3) do (
    set n=!input:~%%i,1!
    set s=!str:~%%i,1!
    if !n! equ !s! ( set /a a+=1 ) else (
       set str_=!str!
       for /l %%j in (0 1 3) do (
           set s_=!str_:~%%j,1!
           if !n! equ !s_!  set /a b+=1
       )
    )
)
set /a count+=1
if !input! equ !str! goto reward
if !count! equ 1 set ok=
set "ok=!ok!!count!.!input! !a!A!b!B"
if !count! equ 10 goto punish
if !count! leq 9 goto loop
pause
:reward
for /l %%i in (1 1 4) do (
    cls&color c1
    ping -n 1 127.1>nul
    cls&color e1
    ping -n 1 127.1>nul
    cls&color 91
    ping -n 1 127.1>nul
)
msg %username% 恭喜,你猜中了!你真聪明!
goto begin
:punish
for /l %%i in (1 1 6) do (
    cls&color 71
    ping -n 1 127.1>nul
    cls&color 81
    ping -n 1 127.1>nul
)
msg %username% 唉,没机会了,下次吧!!正确答案为!str!
goto beginCOPY
嘿,大家玩的愉快哦!
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

返回列表