| @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,则1375为1A1 │ │<nul&echo. |
| set /p= │ │ │<nul&set /p=!ok:~66,11!<nul 2>nul&echo. |
| set /p= │ B,6750为2A2B。输入有误不减少剩余次数! │ │<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 |