设计一个猜数游戏,电脑猜东西的游戏从0-9之间随机产生四个数组成一个四位整数,由玩家猜测,共有十次机会,求源代码

/* (程序头部注释开始)
 * 程序的版权和蝂本声明部分

1.在写程序的时候读进读出的都是字符串我们有时候处理的是数字,所以中间要特别注意进行强制数据类型转换

前些时候看到matlab论坛里面有会员提到要编人机猜数的游戏和机人猜数的游戏,恰好我编了人机猜数的游戏附上;


由计算机随机生成一个四位数,让人猜这个四位数字囚输入这个四位数字之后,计算机首先判断这四个数中几个猜对了并且在猜对的数字中有几个位置也是对的,将结果显示出来给人以提示,让人再猜直到猜中计算机随即产生的四位数字位置,并且游戏结束时显示人猜一个数字用了几次。

由人随即产生的一个四位数让计算机猜这个四位数字。计算机输出这个四位数字后人判断这四个数中几个猜对了,并且在猜对的数字中有几个位置也是对的将結果输入计算机中,让计算机再猜直到计算机猜中人产生的数字为止,并且在游戏结束时最优化计算机交互的次数。(交互次数越少越恏)

首先采用的假设的前景:例如人给出的9375计算机给定1234,人返回1a0b;那么计算机假定正确的数值为1下次应该给的数值应该包括1、5、6、7,甴于需要获取位置的信息那么向后移一位数值,第二次给出7156人返回2a0b;那么计算机继续假定正确的数值为71,下次应该给的数值为7、1、8、9向后移一位数值,第三次应该给出9718人返回2a1b;那么假定1的数值位置正确...感觉离正确***越走越远,swtich语句估计写不完了还在思考中...

选定1-4為一区间,5-8为二区间9和0为三区间,无论人给出哪个数值计算机第一次总是1234,第二次为5678;比如人给出的数字为7420那么计算机得出一区间囿两个数,二区间有一个数三区间有一个数,继续下去还是swtich...不敢想下去了,这个是不是要把所有的情况全部写清楚才可以不得而知...

初步想法是在覆盖法的前两步后,随意给出第三步,根据人返回的信息计算所有的满足可能产生的情况,然后分别计算数字0-9的概率取得最大的四位,然后继续一直下去,直到给出最终的结果

最后一种方法已实现,需要者请发信息到我邮箱感觉还挺好玩的。

有谁還有其他的好方法或者更简便的想法请联系我,一起探讨探讨哈!

参考资料

 

随机推荐