中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 21:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 猜数字游戏[写来自己玩的]
楼 主 猜数字游戏[写来自己玩的] 发表于 2008-03-17 14:52 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线

@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
┌───────┐
├→学习→实践→┤
└───────┘
2 发表于 2008-03-17 18:29 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
请再仔细检查,测试代码有错误!
3 发表于 2008-03-17 18:30 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
if %n2%==%n1% goto :nn2,goto后 应该没有":"
4 发表于 2008-03-17 19:58 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
确实是,有些特殊的输入是会意外退出。不过我是写来自己玩的,容错的代码只有一点点。老实点输入四个不同的数字就好了。呵呵。
┌───────┐
├→学习→实践→┤
└───────┘
5 发表于 2008-03-18 13:50 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
UID 19350
性别 男
状态 离线
这是以前曾经写过的一些代码
仅供参考

根据返回正确数字位数与个数猜数字的游戏
http://www.cn-dos.net/forum/viewthread.php?tid=32554
6 回复qzwqzw 发表于 2008-03-21 20:00 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
很不错,发帖的时候没有搜索一下了,原来前辈已经写过了。而我的只能算是傻瓜型的。

再仔细研究下。
┌───────┐
├→学习→实践→┤
└───────┘
7 发表于 2008-03-22 01:09 ·  中国 北京 华为云
初级用户
积分 71
发帖 34
注册 2008-03-12 19:53
UID 112775
性别 男
状态 离线
真的有好多错误,要在改改呀
论坛跳转: