《C语言程序设计》课程设计---猜数字游戏 下载本文

内容发布更新时间 : 2024/5/23 12:25:48星期一 下面是文章的全部内容请认真阅读。

设计题目:猜数字游戏

目 录

目录

目 录........................................................... - 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” 结束