c语言小游戏:猜数字 随机一个1-100之间的数,根据数据输入进行提示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言小游戏:猜数字 随机一个1-100之间的数,根据数据输入进行提示相关的知识,希望对你有一定的参考价值。
参考技术A //小游戏:猜数字 随机一个1-100之间的数,根据数据输入进行提示#include <stdlib.h>
#include <time.h>
int main(void)
int value=0;
int num=0;
srand((unsigned int) time(NULL));
num=rand()%100+1; //1-100
while(1)
scanf("%d",&value);
if(num>value)
printf("您猜小了\n");
else if(num<value)
printf("您猜大了\n");
else if(num=value)
printf("恭喜您猜对了\n");
break;
return 0;
《C语言初阶》 猜数字小游戏
大家好,这篇文章主要教大家写个小游戏,学习编程的时候我们肯定都有一个梦想就是想写出属于自己的游戏。这次,我们就从0到1开始写一个非常简单的猜数字小游戏,当你写完时和你的朋友一起玩吧!
首先,我们制定一些游戏规则:
电脑随机生出一个1~100的数字。
玩家猜大了,电脑会告诉:猜大了。
玩家猜小了,电脑会告诉:猜小了。
玩家猜对了,电脑会告诉:恭喜你,猜对了。
第一步:在主函数内构建好基本框架
因为,我们一开始就要玩游戏并且多次玩,我们应该使用do…while循环。
在进入循环的开始,我们就应该看到菜单所以我们应该创建一个打印菜单的函数。代码如下:
然后作为玩家看到菜单应该选择1或0,选择1则玩游戏,选择0则退出游戏,如果玩家不小心输入错误的数字,应该提醒玩家重新输入。所以,在后面我们应该用switch语句来实现分支内容。
现在出现了一个问题循环条件该填什么?
我们思考一下可不可以将input放到条件里,如果输入的是0,来到判断条件0为假跳出循环,符合要求。如果输入的是1,判断条件为真则又一次进入循环,符合要求。如果输入的是其它数字,判断条件为真,也会再一次进入循环,所以循环条件填input是符合要求的。
第二步:构建猜数字game()函数里的随机数
1.C语言中如何生成随机数?
C语言中生成的随机数的方式是rand函数(在使用前应该引用头文件stdlib.h)。rand函数我们初步了解一下:
这句话的意思是返回一个随机数它的范围在0到RAND_MAX。RAND_MAX是多大呢?我们将RAND_MAX转到定义:
可以看到RAND_MAX是16进制的0x7fff,转换为10进制是32767。
现在,我们就用vs2019测试一下rand函数:
这里虽然生成随机数,但你把窗口关闭再运行每次运行结果随机数都是一样的。这就有问题了,当你玩完一把后再玩第二把答案是一样的。这是什么原因?
我们再来看后面这段话,在使用rand函数之前,要调用srand函数生成那个随机数的生成器。
这样,我们再来看一下srand函数:
我们可以看到srand函数里需要传入一个无符号整数。这样,我们用srand函数来测试一下。
我们可以看到传入srand函数里的参数不一样,则生成的随机数是发生变化的。
那我们该如何给srand函数里传入一个随时变化的值呢?
比如说:电脑上的时间,时间是随时发生变化的。
这里有个时间戳的概念:就是现在电脑上的时间和电脑起始时间的一个差值,转换成秒。
那我们该如何获取时间戳呢?
在C语言中有一个time函数(在使用前要引用time.h头文件),可以获取时间戳。
这里的参数为指针类型(先了解一下,以后再细说),这样我们就传空指针给time函数,因为srand函数需要无符号的参数,所以我们强制类型转换成unsigned int。
我们可以看到生成的随机数是不一样了,但是当我们输入的1过快,则产生的随机数会相同。因为,生成器只需要创建一次就行了,不需要玩一把创建一次。所以,我们把srand放到主函数里就不会出现这个问题了。
最后,就是我们生成的是0到32767,但我们需要1到100的数,所以只需要给随机数%100,余的就是0到99,因为余数不会大于除数。再加1,就是1到100了。
第三步:构建game函数里的玩家猜数字的过程
这一步就非常简单了。
if (guess < r)
printf("猜小了\\n");
else if (guess > r)
printf("猜大了\\n");
else
printf("恭喜你,猜对了\\n");
当我们猜的数字和正确数字不同时给出相应的提示,但我们猜数字不是一次就猜对,应该加个循环,当我们猜对了跳出来。
while (1)
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < r)
printf("猜小了\\n");
else if (guess > r)
printf("猜大了\\n");
else
printf("恭喜你,猜对了\\n");
break;
整个游戏代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
printf("****************************\\n");
printf("******** 1.play ******\\n");
printf("******** 0.exit ******\\n");
printf("****************************\\n");
void game()
int guess = 0;
//猜数字游戏过程
//生成随机数
int r = rand()%100+1;//生成1到100的数字
//玩家猜数字
while (1)
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < r)
printf("猜小了\\n");
else if (guess > r)
printf("猜大了\\n");
else
printf("恭喜你,猜对了\\n");
break;
int main()
int input = 0;
srand((unsigned int)time(NULL));//时间-设置随机数的生成器
do
menu();
printf("请输入:");
scanf("%d", &input);
switch (input)
case 1:
game();
break;
case 0:
printf("退出游戏\\n");
break;
default:
printf("输入错误,请重新输入\\n");
break;
while (input);
return 0;
总结
这样我们就可以完成这个猜数字小游戏了。好了,不知道到这里大家有没有学会自己写这个小游戏,我希望大家可以自己去尝试写一下,这样会对大家的编程能力和编程兴趣都会有大大的提高。如果这篇文章大家认为有不足之处或错误都可以告诉我,如果大家认为这篇文章有用的话,也希望大家能给我点赞关注,你们的支持就是对我最大的鼓励,我们下一篇文章再见。
以上是关于c语言小游戏:猜数字 随机一个1-100之间的数,根据数据输入进行提示的主要内容,如果未能解决你的问题,请参考以下文章
编写一个猜数的游戏程序。(数字由机器随机产生,限制为1~100之间的整数,用户输入猜测,程序给出大小提示