内容发布更新时间 : 2025/3/4 5:17:47星期一 下面是文章的全部内容请认真阅读。
设计题目:猜数字游戏
目 录
目录
目 录........................................................... - 1 - 1 程序分析与设计.................................................... 2
1.1 功能分析与任务分配 .......................................... 2 功能分析 ........................................................ 2 1.2流程图....................................................... 2 1.3 数据结构 .................................................... 4 2 详细设计.......................................................... 4 3 参考文献.......................................................... 5 4 附录.............................................................. 5 5总结 ............................................. 错误!未定义书签。
《C程序设计》课程设计实验报告 1 程序分析与设计
1.1 功能分析与任务分配
功能分析
此游戏程序通过不断输入以及逐渐数位对应的方法,一步步的缩小猜测范围,最终猜出机内已存储数字,达到健脑益智的效果。
此数字游戏没有设置猜测次数的上限.
简单策略
这种策略非常直接——每次都猜可能答案中的第一个。例如,首先猜测1234,如果得到的反馈是 2A2B,那可能的答案包括1256,1257,5236,等等。根据简单策略,下一次就猜1256,因为1256是所有可能答案中最小的数字。
简单策略的优点是速度非常快,缺点是所需猜测次数很多。
启发式策略
这类策略是猜数字游戏最常用的解法。其算法步骤如下: a. 首先猜 1234,得到第一个反馈(xAyB)。
b. 从所有数字中,筛选出满足已知反馈的所有可能数字,称之为“可能
集”。 c. 对于所有数字(而不仅限于筛选出来的可能集),逐一评估每个数字
的“好坏”,并给其打分。选取得分最高的那个数字猜。如果有多个数字的评分一样高,则优先选取可能集中的数字。 d. 重复步骤 b-c,直到猜出 4A4B为止。
(2)任务分配
李晓飞和谭程方同学:实现猜测数据后的*A*B编写功能,即规则c. 王璐和王爽同学 :实现统计每次猜对数字个数的功能,即规则d. 王鹏宇同学 :实现统计每次猜对的数字并且位置也对的数字个数,即规则e.
(备注:在实际操作中由于每位同学所用变量习惯以及掌握程度不同,所以此程序任务分配可能会部分的与上不符,最后还要对任课老师魏玉芬以及指导老师丁艳清表示衷心的感谢,感谢两位老师给予我们的帮助!)
1.2流程图
《C程序设计》课程设计实验报告
开始 j<4 Y 输入y[j] N i<4 N Y N j<4 Y x[i]==y[j] x[i]==y[i] 输出n1 输出n2 n1An2B n2==4 N Y 输出“恭喜你答对了” 输入非0数字 输入0 输出“正确答案是2569” 结束