中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 23:47
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 猜数字游戏[game's over]
可打印版本  2,544 / 16
第1楼 dosmania 发表于 2007-09-21 15:25
初级用户 发帖 54 积分 172
猜数字游戏[game's over]
写个猜数字的游戏,不知有没有人玩过,家里电话有这游戏,玩了好多次了
我自己也在写,7788,没完善好,想看下大家有没更好的思路。
在论坛里感觉没挑战的高手都可以出来讨论下了,谢谢啊``

规则:

1. 游戏开始会随机获取四位不重复的0-9的数字(第一位可以为0)

2. 玩家首先进行猜测,输入四位不重复的0-9的数字

3. 将游戏一开始获取的数字跟玩家输入的数字进行对比:

假如有一位的数字和位置完全匹配的话,设置标志 A1

假如有一位的数字匹配,但是位置不匹配的话,设置标志B1

假如数字和位置均不匹配的话,设置标志B0

数字和位置完全匹配只设置标志A,跟B无关

例如: 答案是 4690 若我猜 0679 则 提示为 A1B2

若提示 A0B0 则表示所猜的数字在答案中完全没出现过

若提示 A0B4 则表示所猜的数字完全匹配,但是位置全错了

A4B0 就是正确答案了。

4. 只有10机会

大概思路:

* 必须验证随机答案

验证随机获取的数字是否四位,每一位是否有重复

* 必须验证玩家的输入规范

验证玩家输入的是否是纯数字,是否有重复,是否是4位,否则给出相应提示然后跳回重新输入

* 记录历史记录

第一次用户输入了什么,得到的提示是什么,必须在第二次猜测的时候显示出来供参考

* 记录使用次数

猜了多少次,剩下多少次,跟历史记录一起显示

* 必须有重玩的机会

玩家使用完10次之后还没猜出来必须要有重玩机会,或者一次就猜出来了,也要有重玩机会

-------------------------------------------------------------------------------------------
最终答案见 7楼、9楼、11楼、16楼
结帖!

[ Last edited by dosmania on 2007-9-26 at 09:32 PM ]
第2楼 dosmania 发表于 2007-09-24 15:04
初级用户 发帖 54 积分 172
我狂汗啊``怎么没人研究啊``
第3楼 bjsh 发表于 2007-09-24 16:55
银牌会员 发帖 621 积分 2,000
这个挺有意思的;
只是这段时间比较忙没时间;

十一放假;一定写出来贴上来;
第4楼 vkill 发表于 2007-09-24 16:57
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
很早就有人写了个猜数字的游戏,在那个上面稍微修改下就可以的
第5楼 HAT 发表于 2007-09-24 21:43
版主 发帖 5,017 积分 9,023
我以前写了个C语言版的
有时间把它转成批处理
第6楼 dosmania 发表于 2007-09-25 03:37
初级用户 发帖 54 积分 172
re bjsh:
期待版主的思路吖````

re vkill:

是有人写过,但截然不同,差很多呢,那游戏够假
我说的这个可是真实存在我家固定电话里的游戏。
我提到的一些必要的验证也是和你说的那个区别开来。

re HAT:

把代码贴上来
第7楼 qzwqzw 发表于 2007-09-25 11:20
银牌会员 发帖 636 积分 2,343
第8楼 dosmania 发表于 2007-09-25 14:15
初级用户 发帖 54 积分 172
re qzwqzw:

拜读了一下你的贴子``反猜解太慢了,等了N 久``
其实现实存在的那个猜数字游戏是猜10次,而不是8次。
我测试了你的release 1 版,出现的问题也贴到你贴子里了`自己去看``
感觉你的代码N 多```
第9楼 s11ss 发表于 2007-09-25 14:37
银牌会员 发帖 566 积分 2,098


[ Last edited by s11ss on 2007-9-25 at 02:44 PM ]
第10楼 qzwqzw 发表于 2007-09-25 14:50
银牌会员 发帖 636 积分 2,343
dosmania:
我承认那个猜解算法确实有些蹩脚
毕竟只是一个闲暇之余的R1而已

可惜当时没人对此感兴趣
没有形成讨论的气氛
后来我也失去了这方面的兴趣

你若有新的算法那就贴出来
也许会重新激发我的兴趣也不一定
------------------------------------------------------
至于猜8次还是猜10次问题
我认为那不是问题
最初我就设定了10次
后来因为显示版面和日志的原因改成了8次

真要说起来
我接触的此类游戏中
游戏机和电视机的是不限次数的
录像机是限制了8次,并且不使用数字9和0
电脑的就很多样了

一个优秀的猜解算法
穷举算法应该就是次数最少的算法
但不是效率最高的
平均猜解次数应该是小于6次吧
设定8次也算中级难度吧

------------------------------------------------------

“感觉你的代码N 多``` ”
不明白,可以解释一下吗

[ Last edited by qzwqzw on 2007-9-25 at 03:05 PM ]
第11楼 jmz573515 发表于 2007-09-25 15:56
银牌会员 发帖 464 积分 1,212
批处理我是写不出来了,发一个VBS的吧


[ Last edited by jmz573515 on 2007-9-25 at 04:09 PM ]
第12楼 dosmania 发表于 2007-09-26 14:31
初级用户 发帖 54 积分 172
呵呵``jmz573515 厉害,VBS互动性N 好
if len(n)<>4 靠``根本不能比嘛```VBS这个就搞定了位数``
不知jmz573515 对s1 s2 s3 s4 的重复可能性进行考虑没有```?
第13楼 dosmania 发表于 2007-09-26 14:53
初级用户 发帖 54 积分 172
re s11ss:
你的代码也完全符合要求```不知你对随机数重复的验证是哪些``
第14楼 jmz573515 发表于 2007-09-26 15:31
银牌会员 发帖 464 积分 1,212
dosmania:
if len(n)<>4 靠``根本不能比嘛```VBS这个就搞定了位数``
不知你说的是不能比是什么意思,我认为可以限定在4位啊??

不知jmz573515 对s1 s2 s3 s4 的重复可能性进行考虑没有```?

重复的可能性不知道你指的是什么?(你是说可能性有多大?还是说有可能重复?)
这里我只考虑了有可能重复所以做了判断,如果重复的话重新生成随机数,并没有考虑他的可能性有多大,也许效率不高...)
第15楼 s11ss 发表于 2007-09-26 16:52
银牌会员 发帖 566 积分 2,098
Originally posted by dosmania at 2007-9-26 02:53 PM:
re s11ss:
你的代码也完全符合要求```不知你对随机数重复的验证是哪些``


随机数重复?
不明白你的具体意思.

反正我的代码是让随机数的4位数字不重复,至于随机数与随机数之间是否重复我并未控制,不过题目里好象也没有要求啊
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023