标题: 猜数字游戏[写来自己玩的]
[打印本页]
作者: wxcute
时间: 2008-3-17 14:52
标题: 猜数字游戏[写来自己玩的]
@echo off
color 70
:begin
cls
echo 猜数字游戏(你有10次机会)
::生成随机数
set/a n1=%random%%%10
:nn2
set/a n2=%random%%%10
if %n2%==%n1% goto :nn2
:nn3
set/a n3=%random%%%10
if %n3%==%n2% goto :nn3
if %n3%==%n1% goto :nn3
:nn4
set/a n4=%random%%%10
if %n4%==%n3% goto :nn4
if %n4%==%n2% goto :nn4
if %n4%==%n1% goto :nn4
set nn=%n1%%n2%%n3%%n4%
::echo %nn%
::输入
set nt=
:numin
set/p nin=输入:
set m1=%nin:~0,1%
if "%m1%"=="" goto :numin
set m2=%nin:~1,1%
if %m2%==%m1% goto :numin
if "%m2%"=="" goto :numin
set m3=%nin:~2,1%
if %m3%==%m1% goto :numin
if %m3%==%m2% goto :numin
if "%m3%"=="" goto :numin
set m4=%nin:~3,1%
if %m4%==%m1% goto :numin
if %m4%==%m2% goto :numin
if %m4%==%m3% goto :numin
if "%m4%"=="" goto :numin
set m5=%nin:~4,1%
if not "%m5%"=="" goto :numin
set/a nt+=1
::判断AB
set/a a=0
if %n1%==%m1% set/a a+=1
if %n2%==%m2% set/a a+=1
if %n3%==%m3% set/a a+=1
if %n4%==%m4% set/a a+=1
set/a b=0
if %n1%==%m2% set/a b+=1
if %n1%==%m3% set/a b+=1
if %n1%==%m4% set/a b+=1
if %n2%==%m1% set/a b+=1
if %n2%==%m3% set/a b+=1
if %n2%==%m4% set/a b+=1
if %n3%==%m1% set/a b+=1
if %n3%==%m2% set/a b+=1
if %n3%==%m4% set/a b+=1
if %n4%==%m1% set/a b+=1
if %n4%==%m2% set/a b+=1
if %n4%==%m3% set/a b+=1
echo %a%A%b%B %nt%
::次数
if %a% equ 4 (
echo 成功&&goto :end
) else (
if %nt% lss 10 goto :numin
)
echo 失败,答案:%nn%
:end
set/p new=再来一局(y):
if %new%==y goto :begin
echo.[按任意键退出]
pause>nul
作者: bat-zw
时间: 2008-3-17 18:29
请再仔细检查,测试代码有错误!
作者: bat-zw
时间: 2008-3-17 18:30
if %n2%==%n1% goto :nn2,goto后 应该没有":"
作者: wxcute
时间: 2008-3-17 19:58
确实是,有些特殊的输入是会意外退出。不过我是写来自己玩的,容错的代码只有一点点。老实点输入四个不同的数字就好了。呵呵。
作者: qzwqzw
时间: 2008-3-18 13:50
这是以前曾经写过的一些代码
仅供参考
[原创]根据返回正确数字位数与个数猜数字的游戏
http://www.cn-dos.net/forum/viewthread.php?tid=32554
作者: wxcute
时间: 2008-3-21 20:00
标题: 回复qzwqzw
很不错,发帖的时候没有搜索一下了,原来前辈已经写过了。而我的只能算是傻瓜型的。
再仔细研究下。
作者: lfopt
时间: 2008-3-22 01:09
真的有好多错误,要在改改呀