成java猜数字游戏代码字

java猜数字游戏代码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
java猜数字游戏代码
上传于||文档简介
&&编​写​程​序​,​项​目​名​与​类​名​均​为​G​u​e​s​s​N​u​m​b​e​r​G​a​m​e​。​每​次​游​戏​程​序​随​机​产​生​一​个-之​间​的​整​数​要​求​玩​家​输​入​自​己​猜​的​数​字​,​并​对​用​户​输​入​数​字​进​行​检​查​,​进​行​如​下​提​示​ ​如​果​用​户​猜​对​了​则​提​示​恭​喜​你​猜​对​了​结​束​本​次​游​戏​ ​如​果​用​户​猜​错​了​则​提​示​你​猜​的​数​字​太​(​大​或​小​)​要​求​用​户​继​续​猜​如​果​连​续次​没​有​猜​对​则​提​示​游​戏​失​败​一​次​游​戏​结​束​时​提​示​用​户​是​否​继​续​新​的​游​戏​果​用​户​选​择​继​续​,​则​开​始​新​一​次​游​戏​,​否​则​输​出​你​共​进​行​X​次​游​戏​成​功​X​次​失​败​X​次​然​后​结​束​程​序
大小:3.69KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢猜数字至少需要几步才能保证猜出来? | 死理性派小组 | 果壳网 科技有意思
840015人加入此小组
以前经常玩的游戏:电脑随机产生一个数字不重复的四位数。你每次猜一个四位数电脑会将你提交的数与它自动产生的数进行比较,结果显示成"*A*B"。A代表位置正确数字也正确,B代表数字正确但位置不正确。比如:"2A2B"表示您有2个数字的位置正确且数值也正确,除此以外,您还猜对了2个数字,但位置不对。那么至少需要几步才能保证一定猜出来啊?
+ 加入我的果篮
数学/化学爱好者
1234 -& 0a1b5678 -& 0a2b这种开局很棘手 很久不玩了,不过记得一般也就10次能解决
我的方法是首先来确定目标数的分部,然后用位置不重复的测试来确定目标数,在目标数确定后,回头根据a b的分部来推算正确位置。一般6,7次左右。中学里上课文曲星上玩玩的没认真研究过。。。
初中那会儿文曲星风靡的时候专门写过程序来玩那个猜数字程序,实战结果&=6次。只是猜想,不知道怎么证明~~
电子工程专业
的回应:初中那会儿文曲星风靡的时候专门写过程序来玩那个猜数字程序,实战结果&=6次。只是猜想,不知道怎么证明~~算算信息熵?
有一种玩法是事先一下子给出N个猜测,再根据这N个猜测对应的结果给出最后答案。所以可以如下,10个数猜10次,记下结果列出10个方程x1+x2+x3+x4=a1x2+x3+x4+x5=a2x3+x4+x5+x6=a3...ai表示4个数中存在的个数,可求出有哪些数字,又因为每个数都在4个不同位置分别出现过,根据位置是否正确可给出最后答案。这种方法既不需要AI,也不需算概率。当然这肯定不是最优解呵。
的回应:算算信息熵?恩,我是这样干的,每次选择获得信息期望最大的数字组合(比如说猜出一个0A0B获得的信息量比1A1B神马的都要大)。但是能否证明至多6次“必定”能够猜出?贴段程序运行输出,源码找不到了,只有exe~~Initialize done!*************************Round 15040 possible results.required_info = 12.299208 bits1, Most valuable: 0 , 1 , 2 , 3 = 2.771152 bits2, Most possible: 0 , 1 , 2 , 3Result: pick=1, A= 1 , B= 1Infomation Got= 2.807355 bits.*************************Round 2720 possible results.required_info = 9.491853 bits1, Most valuable: 0 , 1 , 4 , 5 = 2.962067 bits2, Most possible: 0 , 2 , 4 , 5Result: pick=1, A= 0 , B= 2Infomation Got= 2.633872 bits.*************************Round 3116 possible results.required_info = 6.857981 bits1, Most valuable: 4 , 6 , 2 , 1 = 3.283087 bits2, Most possible: 1 , 4 , 2 , 6Result: pick=1, A= 1 , B= 1Infomation Got= 2.536053 bits.*************************Round 420 possible results.required_info = 4.321928 bits1, Most valuable: 7 , 0 , 2 , 4 = 3.246439 bits2, Most possible: 7 , 0 , 2 , 4Result: pick=1, A= 0 , B= 2Infomation Got= 3.321928 bits.*************************Round 52 possible results.required_info = 1.000000 bits1, Most valuable: 0 , 1 , 2 , 5 = 1.000000 bits2, Most possible: 4 , 2 , 5 , 3Result: pick=1, A= 0 , B= 1Infomation Got= 1.000000 bits.*************************final result: 4 7 1 3*************************
的回应:有一种玩法是事先一下子给出N个猜测,再根据这N个猜测对应的结果给出最后答案。所以可以如下,10个数猜10次,记下结果列出10个方程x1+x2+x3+x4=a1x2+x3+x4+x5=a2x3+x4+x5+x6=a3...ai表示4个数中存在的个数,可求出有哪些数字,又因为每个数都在4个不同位置分别出现过,根据位置是否正确可给出最后答案。这种方法既不需要AI,也不需算概率。当然这肯定不是最优解呵。是啊~这样没能充分用上“A”和“B”的信息~
飞面神教泛面宗信徒
这个我查过相关的资料。有人穷举过,记得是一共可以分几千种情况,然后有5种情况下6步是无法猜中的,也就是说要7步才能保证猜中。
的话:这个我查过相关的资料。有人穷举过,记得是一共可以分几千种情况,然后有5种情况下6步是无法猜中的,也就是说要7步才能保证猜中。偶然看到。求资料。
额、这个写过类似的程序、反正我写的大概平均在5次多、听一个高人说他之前写过平均4次的
飞面神教泛面宗信徒
的话:偶然看到。求资料。抱歉。。。我查这个相关资料距现在至少也有六七年了,实在想不起来当时在哪个论坛看到的。。。
的话:抱歉。。。我查这个相关资料距现在至少也有六七年了,实在想不起来当时在哪个论坛看到的。。。有个和我一起搞OI的小朋友在弄这个。现在打算拿这个做课题去参加丘成桐数学竞赛(先Orz个)。所以看到了问一下~
算算信息量吧每猜一次得到的结果有15种可能(5+4+3+2+1=15)中不重复的数值有5040个(10*9*8*7=5040)猜三次得到的结果有15^3=种可能,所以第四次猜不出来猜四次得到的结果有15^4=种可能,所以第五次能猜出来(理论上)所以说猜四次是不能保证猜出的。至于猜五次行不行,还需要进一步的研究……
飞面神教泛面宗信徒
的话:有个和我一起搞OI的小朋友在弄这个。现在打算拿这个做课题去参加丘成桐数学竞赛(先Orz个)。所以看到了问一下~那个人记得是个中学教师吧,和另一个人在一个论坛上讨论的。基本思路是(年代久远可能有出入):固定用一组数作为起始猜测,当获得一次反馈后,可能集减小。然后根据可选集中的组合,求出一种猜测,使得对方无论给出什么样的反馈,在下一步能得到的最大可选集最小,依此类推,可以保证在最少步骤猜出答案。然后他用所有可能的组合去试这个方法,结果发现有几个组合没法六次猜出。据他说,遍历所有组合花了他很长时间。
(C)2016果壳网&&&&&京ICP备号-2&&&&&当前位置: >
泡妞中如何用猜数字的游戏来吸引住美女?
猜数字桥段能制造神秘感和吸引力,泡妞秘籍适合于日常生活中搭讪的中场和酒吧搭讪的开场。
这里介绍猜数字桥段的几个版本,
(1)泡妞秘籍迷男简单版。
这个来自(mystery method),我刚开始看到这个桥段兴奋不已,因为它如此简单易学又如此有趣。我迫不及待地到大街上对每个目标测试这个桥段,但成功率很低。
mm的猜数字桥段是这样的,你问目标:“你相信心灵感应么 ”目标说:xxx。你说:“我们来试验一下,我能猜到你心里想的东西。你想一个数字,从1到4的,想好了不要说出来,也不要变来变去……(催促她)快点,想好了吗 ”女孩点头:“想好了。”你说:“是3。”
然后她说你猜的对或不对。如果女孩说你猜得对,她会要求再来一次,这个时候你说:“我们加大难度,猜从1到10的。”她想好以后,你猜7。
如果女孩说你猜错了,你说:“刚才没有发挥好,再来一次,这次加大难度,从1到10。”然后猜7。
这个简单版本的技巧在于,大部分人都会想到3和7,所以每次都猜3和7。顺便提一下,没有人想开头和结尾的数字,也就是1、4、10。
根据我的实际测试,从1到4,女孩猜2和3的多;从1到10,猜6、8、9的多。
这个版本的关键在于,催促女孩快点决定,这样她就迅速想到第一个跳出脑海的数字。
这个版本的成功率很低,不推荐采用。
(2)泡妞秘籍心灵魔术版。
这个改进的猜数字桥段来自《心灵魔术》。是驴皮影介绍给我的,我试验了一下,效果比较好。
和迷男简单版不同,你说:“我能猜到你心里想的东西,你想一个数字,从1到5的,想好不要说出来,也不要变。(催促)想好了吗 ……(停顿,看她的眼睛)从1到5的太简单了,我们来点有挑战性的,从1到10的。(催促)快点,想好不要变,想好了吗 ”
女孩说想好了。
你说:“你想的数字比5大。”
目标说:“对。”(如果目标说不对,你可以猜3。)
你问:“你想的数字离5近吗 ”
女孩的回答分为几种情况,“是的。”“比较近(差不多)。”“(犹豫)有点近。”“不近。”
女孩回答“是的”,你猜6;
女孩回答“比较近(差不多)”,你猜7;
女孩回答“(犹豫)有点近”,你猜8;
女孩回答“不近”,你猜9。
这个桥段的技巧在于,你开始让女孩猜1到5,后来改口让目标猜1到10,表面加大了难度,其实大部分人这个时候会把心里想的数字改成从6到10的,一般没人想10。
接下来你问“是不是离5很近 ”女孩的回答暴露出她想的数字到底是6-9中哪一个。
这个版本成功率的关键在于,把握女孩回答时候的语气和神态,揣测到底是6-9的哪一个。
(3)泡妞秘籍暗示改进版。
这个版本在心灵魔术版的基础上又做了改进,成功率提高到90%以上。
你在和女孩聊天的时候,嵌入一个数字的问题或话题。例如,“刚才我的小侄女问我一道小学数学题,我想了半天也想不出来答案,你小学数学学得好么 ……(女孩的反应)这个问题是,从1到100之间有多少个9 只要出现9就算。29里边算一个9,93也算一个9。”女孩回答:“xx个。”告诉女孩正确答案是“20个”,然后笑话她是猪头,说她小学没毕业。
这个话题聊过以后,9就印到女孩的潜意识里。和女孩聊一会其他的话题。
然后开始猜数字桥段,猜她想的数字是9。
这个方法成功率可以提高很多。也可以嵌入其他数字,比如6或7,想一个包含这个数字的故事,反复强调这个数字。
(4)泡妞秘籍可选的进挪。
猜数字时,可以配合进挪,进行服从性测试。
比如猜数字前,你说:“你相信心灵感应吗 把你的手放在我的手上,闭上眼……”或者“拉着我的手,你心里想的数字会传导到我心里……”
如果气氛合适,女孩对你有好感,她就会听你的指挥。
总结,用猜数字的方法在吸引美女无疑是又幽默又能提升女孩子的对你的印象,一举两得。3026人阅读
Problem Description
猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。
比如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
现在给你一段gameboy与计算机的对话过程,你的任务是根据这段对话确定这个四位数是什么。
输入数据有多组。每组的第一行为一个正整数N(1&=N&=100),表示在这段对话中共有N次问答。在接下来的N行中,每行三个整数A,B,C。gameboy猜这个四位数为A,然后计算机回答猜对了B个数字,其中C个在正确的位置上。当N=0时,输入数据结束。
每组输入数据对应一行输出。如果根据这段对话能确定这个四位数,则输出这个四位数,若不能,则输出&Not sure&。
Sample Input
Sample Output
知道题意后直接暴力枚举即可
#include&stdio.h&
#include&cstring&
const int MAXN=100;
struct Node
int a,b,c;
} node[MAXN];
bool Judge(int k,int number)
int num1[5],num2[5];
bool mark[5];
for(int i=1; i&=4; i++)mark[i]=
num1[1]=node[k].a/1000;
num1[2]=(node[k].a%;
num1[3]=(node[k].a%100)/10;
num1[4]=(node[k].a%10);
num2[1]=number/1000;
num2[2]=(number%;
num2[3]=(number%100)/10;
num2[4]=(number%10);
int count=0;
for(int i=1; i&=4; i++)//相同位置相同的数
if(num1[i]==num2[i])count++;
if(count!=node[k].c)//如果个数不符就返回错
for(int i=1; i&=4; i++)//相同数字的个数
for(int j=1; j&=4; j++)
if(num1[i]==num2[j]&&!mark[j])
if(count!=node[k].b)
int main()
while(~scanf(&%d&,&n)&&n)
for(int i=1; i&=n; i++)
scanf(&%d%d%d&,&node[i].a,&node[i].b,&node[i].c);
int count=0,
bool flag=
for(int num=1000; num&=9999; num++)//暴力枚举
for(int i=1; i&=n; i++)
flag=Judge(i,num);
if(count==1)
printf(&%d\n&,result);
printf(&Not sure\n&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1322343次
积分:23145
积分:23145
排名:第192名
原创:1000篇
评论:289条
(14)(8)(76)(44)(47)(17)(2)(2)(35)(18)(40)(36)(27)(13)(39)(49)(59)(32)(69)(77)(35)(61)(71)(71)(11)(44)(9)猜数字游戏玩法_百度知道
猜数字游戏玩法
获得其真正实力,对次数求平均值,用户作为猜数字一方;当用户选择开始游戏时。&#180,而猜的人猜 5346,则插入到排行榜中,如1)基本模式,一方猜。´通常由两个人玩,则提示用户游戏失败,直到猜中(即 4A0B)为止,并把排行榜中位次最末的记录挤出排行榜,用户可以查看游戏规则,让用户逐次猜数字,因此记为 2B,记为1A,但仍允许继续猜测,如果排名在前一名,以便其他用户查看,则计入排行榜中,连续出n题,不能让猜的人知道,可以查询某的用户的排行。´提供不同的游戏模式,而3和4这两个数字对了。猜的人就可以开始猜;由计算机作为出数字的一方。&#180。每猜一个数字,出数者就要根据这个数字给出几A几B。&#180,挑战过后可以对比答题过程;2)挑战模式。2,用户每次猜数字后系统会给出本次猜数字的结果提示,其中A前面的数字表示数字正确位置也正确的数的个数,一方出数字。在帮助模块。如果在10次之内猜出4个数字和正确的顺序,用户可以查看当前的游戏排行;做到界面与业务逻辑分离;如正确答案为 5234:&#180,而位置没对。在排行榜查看功能中,则是 1A2B。如果用户猜数字的次数超过10次,其中有一个5的位置对了;变化与扩展,当熟悉规则后可以退出帮助模块,合起来就是 1A2B。设置猜数字上限如10次,而B前的数字表示数字正确而位置不对的数的个数、游戏软件需求&#180。排行榜中总共显示10名玩家的排行,则提示用户猜数字成功,并到排行榜中进行比较,如有新的记录产生。&#180,允许用户挑战入榜者的题目和次数。3)实力模式;参数设置qing大神帮忙原创一个´接着猜的人再根据出题者的几A几B继续猜。出数字的人要想好一个没有重复数字的4位数
(再延伸一下,出题者就应该缩小范围为此游戏者说的数字与最大数字之间(出题者应该说11-100),把写好的数字放到大家可以看到的位置(防止作弊),一个比写好的大这个游戏的名字大家可以随便起无所谓的,一个出题者和若干个游戏者,自己规定好了就可以,出题者就应该缩小范围为此游戏者说的数字与最小数字之间(出题者应该说1-99),(以1-100为例,
再由所有游戏者按顺序每人说一个数字,依次类推)
直到游戏者说出出题者写出的数字,一个正好,下一个游戏者说90,
如果比写好的数字小的话(比如11),出题者说11-90,出题者说60-90,游戏结束~
如果还有不明白的话给我留言我再给你解释,按照游戏者的数量和想玩游戏的时间长短规定所有数字,满有趣的
规则很简单,
如果比写好的数字大的话(比如99),再下一游戏者说60,
由出题者写出其中的任意一个数字,再由下一个游戏者说出一个数字,写出88),是从1-100或1-1000都可以,一个比写好的小,再由下一个游戏者说出一个数字,我们生活中也经常玩这个游戏,
而游戏者说出的数字有三种可能性
其他类似问题
为您推荐:
猜数字游戏的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 猜数字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信