c语言:编写猜数字小游戏
程序:
#include#includevoid menu{printf(“***欢迎来挑战猜数字游戏*** ”);printf(“*****请选择开始或退出***** ”);printf(“******1.start 0.exit****** ”);}void game(){int num = 0;srand((unsigned)time(NULL));//随着时间变化生成不同的随机数int ret = rand() % 100 + 1;//是从一个时间点到此时的秒数while (1){printf(“请猜数字:”);scanf(“%d”,&num);if (num == ret){printf(“你真聪明,猜对了! ”);break;}else if(num >ret){printf(“你好笨,猜大了! ”);}else if (num < ret){printf(“你真蠢,猜小了! ”);}}}int main(){int input = 1;while (input){menu();printf(“请选择:”);scanf(“%d”,&input);switch (input){case 0:break;case 1:game();break;default:break;}}return 0;}
结果:
***欢迎来挑战猜数字游戏***
*****请选择开始或退出*****
******1.start 0.exit******
请选择:1
请猜数字:50
你真蠢,猜小了!
请猜数字:75
你真蠢,猜小了!
请猜数字:100
你好笨,猜大了!
请猜数字:85
你真蠢,猜小了!
请猜数字:93
你好笨,猜大了!
请猜数字:90
你好笨,猜大了!
请猜数字:87
你真蠢,猜小了!
请猜数字:88
你真蠢,猜小了!
请猜数字:89
你真聪明,猜对了!
***欢迎来挑战猜数字游戏***
*****请选择开始或退出*****
******1.start 0.exit******
请选择:0
1 游戏功能说明
1.1 游戏过程
⑴系统产生一个不重复的N位随机数 (N的大小设置为等级相关:如初级设置为2, 中级设置为3, 高级设置为4) ;
⑵玩家输入所猜测的不重复N位数, 按回车提交 (如果输入的数字个数应与N一致, 若不一致, 应当重新输入) ;
⑶系统比对产生的随机数和提交的猜测数, 输出形如“A*B*”的提示信息 (该信息中A后的数字代表数值正确、位置也正确的数目, B后的数字代表数值正确但位置不正确的数目, 如“A1B2”, 表示玩家已经猜出了3个数字, 其中有1个数值正确位置也正确, 有2个猜对了数值, 但位置不对) ;
以上的后两步骤重复进行, 但系统可以限定猜测比对次数。在规定次数以内猜测成功, 即为游戏成功, 否则, 游戏失败。猜数次数也可设置与等级相关:如初级设置为9次, 中级设置为8次, 高级设置为7次。
1.2 游戏结果排行
按游戏完成所猜数的次数为主关键字, 历时时间为次关键字, 对游戏结果进行排序统计。在最佳排行中显示前五的记录, 若玩家的成绩高于已有的记录, 则提示输入玩家信息, 并更新最佳排行。
2 总体设计
根据上述的游戏功能说明, 将猜字游戏的模块设计如图1所示:
⑴“系统功能菜单”模块:用于玩家进行操作选择, 也是本游戏的入口, 玩家在此选择相应模块并调用对应的功能。
⑵“开始游戏”模块:根据游戏等级设置的猜数位数和猜数次数, 记录游戏的开始时间和结束时间, 并显示游戏结果。
⑶“等级设置”模块:设置游戏的初、中、高级别, 等级信息保存于文件。初次游戏的默认等级为初级, 而下次打开游戏时默认等级为上次退出时的等级。
⑷“最佳排行”模块:显示当前等级的前五佳成绩, 不同等级的排行存放于不同文件。
⑸“游戏说明”模块:显示游戏玩法规则。
⑹“退出游戏”模块:退出游戏并显示相应信息。
3 详细设计
3.1 数据结构设计
本游戏中涉及的主要数据结构是存放玩家最高分信息的结构体, 具体如下:
3.2 程序流程
游戏从功能菜单的选择开始执行, 依据玩家的选择进行相应的处理直到退出游戏为止。程序流程图如图2所示。
3.3 函数原型及功能说明
3.3.1 选择菜单函数:void Menu ()
功能:此函数的功能是依据玩家的选择项进行相应处理, 直到玩家选择退出游戏为止, 包括开始游戏、等级设置、最佳排行、游戏说明、退出游戏等选择项。
3.3.2 初始化文件函数:void Init File ()
功能:初始化用于保存游戏历史记录的文件, 其中rank.txt用于存放游戏等级信息, top1.txt用于存放初级的历史最佳五佳记录, top2.txt和top3.txt分别用于存放中级和高级的历史最佳五佳记录。
3.3.3 开始游戏函数:void Start Game ()
功能:记录游戏的开始时间和结束时间, 条用Execute Game () 、Game Result () 等函数, 对游戏进行整体控制。
⑴产生随机数函数:void Create Number (int*cl, int digit)
功能:由系统产生不重复的digit位随机数, 其中的参数1是整型指针, 指向所产生的随机数, 参数2表示所产生随机数的位数。
⑵运行游戏函数:int Execute Game (int digit, int gnumber)
功能:执行游戏, 调用Create Number () 以产生随机数, 由玩家输入所猜测的数据, 输出猜测结果供玩家参考, 其中的参数1是所猜数字的位数, 参数2是允许猜测的次数。
3.3.4 游戏结果处理函数:void Geme Result (int tim, int digit, int number, int rank)
功能:对游戏结果进行处理。游戏不成功, 重新开始游戏或返回主菜单;游戏成功时, 根据游戏耗时和实际猜数次数, 判断是否能进入本等级的历史五佳, 若能则修改本等级的历史五佳记录, 提示玩家是否进入下一等级。其中的参数1是游戏耗时, 参数2是猜测数字的位数, 参数3是实际猜测次数, 参数4师当前游戏等级。
另外, 还应设计设置游戏等级函数Set Rank () 、输出游戏说明函数Show Explain () 、设置历史五佳函数Set Top () 、显示历史五佳函数Show Top () 等功能函数。
4 函数实现示例
下面将运行游戏函数:int Execute Game (int digit, int gnumber) 的实现简介如下:
在本函数调用Create Number () 函数产生了digit位随机数后, 执行一个循环gnumber次的for语句, 在本循环语句体中, 需要输入玩家所猜测的digit位数字, 完成猜测数和随机数的比对, 输出猜测结果A*B*, 并在猜数成功后结束猜数过程。
5 总结
在本游戏的设计完成过程中, 严格遵守结构化的程序设计思想, 广泛应用C语言的数组、指针、函数、结构体、文件等知识。通过一个实例将C语言知识进行综合运用, 对学习C语言并提高其应用能力是非常有益处的。
摘要:作为高校很多专业的入门计算机编程语言, C语言有着强大的应用能力。本文介绍了猜字游戏的从设计到C语言实现的全过程, 综合运用了C语言的各方面知识, 体现了结构化的程序设计思想, 以提高学生对C语言的认识水平。
Y=max(m,n)这指的是y=m和n中最大的
这就是C语言和单片机语言的一个思想 C语言和单片机主要是靠逻辑思想来编程。但两者之间也有差别: 应用的函数有的地方不同 编程的格式不同
功能相对而言我感觉C语音更强大一些。C语言真对的是系统 单片机主要是针对机
熟练运用这两种就是现在计算机与自动化机械的基础 学习函数应由浅到深,易于理解。算法也是其主要内容
算法的其中一种在于延时。
延时的作用多用在控制动作的次序以及时间间隔 C++是比较常用的C语言工具
此外还有VB等等
内容的编写主要根据目的任务而定 内容编写应尽量工整,便于读懂和检查
实验目的1)使用if语句计算分段函数
2)熟练掌握for语句和while语句编写简单的循环程序
3)学习简单的程序调试方法
编程题
1.编写程序显示0至50之间的所有奇数。(用while循环语句与for循环语句
两种方法实现。
2.从键盘输入两个整数m和n(m Enter 2 numbers: 5 7 The sum of the numbers in the range 5 to 7 is: 18 【c语言:编写猜数字小游戏】推荐阅读: c语言实现猜数字小游戏02-26 c语言编写单片机感想03-01 中班语言猜动物谜语12-28 c语言总结07-15 c语言课程12-13 黑马程序员C语言教程:C语言基础之#define详解01-13 c语言概念题09-22 C语言教学建议10-25 c语言递归程序11-06 c语言设计程序11-11