模拟以前文曲星电子词典哪款好中的一个小游戏《猜数字游戏》规则:文曲星随机产生四

控制台应用程序 功能: 通过模拟duck游戲功能来介绍interface的使用 其中使用了策略模式 推荐先看代码再看ppt,最后再体会策略模式的定义 策略模式定义: 针对一组算法,将每一个算法封装到具

这是一个比较经典的益智游戏叫做猜数字,很多人从小都在文曲星里玩过这游戏

游戏规则:文曲星内部会产生四个不同的有序的一位数(1-9),我们对这四个数字进行猜测每次猜测四个数字(包括了顺序),文曲星会返回AB两个值,A代表我们猜的数字中正确数字的个数B代表猜的数字中不仅正确而且處于正确位置上的数字的个数。如文曲星内部产生的是4327我们猜1324,则A=3表示3,2,4这3个数字是正确的,B=2表示2,3这2个数字不仅正确还处于正确的位置。

游戏任务:最少次数地猜出文曲星内部的四个有序数字

这里给出了一个通过逻辑判断,对任何情况至多6步可以猜出来的算法实现根据有关资料的说明,6步内猜出所有情况貌似是这个游戏最快的结果

算法:主要是复杂的逻辑判断。基本的想法是先在六步里判断出是哪4个数字然后一次性根据前面积累的B值判断出正确的位置(如果此时有多个选择则选择其中之一输出,然后根据这次输出的反馈再判断)

问题的关键是设置什么算法可以再六步内判断出这四个数字?这里给出的是前三步总是做固定的猜测,分别是“1,2,3,4”“2,1,5,6”,“7,8,1,2” 設每次得到的A反馈分别为A1,A2A3,然后根据sum=A1+A2+A3的值来做判断显然sum>=3,因为没被猜得只有9如果sum为3,那么9必然在其中1,2必不在其中,然后可跟别根据A1A2,A3的值来判断3,4,5,6,7,8 (当然还要更一步判断)如果sum为4,这四个数必然为3,4,5,6,7,8 中的4个。当然如果你有兴趣,可以对其他的试着做类似的逻輯判断建立在这些判断之下然后再进一步决定下面猜测什么。

这里给出一个C++实现的代码欢迎测试。代码里能看清楚具体怎么根据sum的和來判断以及怎么根据判断结果继续猜。如果你想让计算机猜的是8327那么下面是执行的一个界面(比较粗糙,没好好做界面):

  • Python版的文曲星猜数字游戏代码

Python版的攵曲星猜数字游戏代码

发布时间: 发布网站:脚本之家

收集整理的这篇文章主要介绍了小编觉得挺不错的,现在分享给大家也给大家莋个参考。

以上是为你收集整理的全部内容希望文章能够帮你解决所遇到的程序开发问题。

如果觉得网站内容还不错欢迎将推荐给程序员好友。

本图文内容来源于网友网络收集整理提供作为学习参考使用,版权属于原作者
如您喜欢交流学习经验,

猜你在找的Python相关文嶂

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!

参考资料

 

随机推荐