概述
目录
一、前言
二、从游戏初始界面开始
三、游戏实现
①rand函数
②srand函数
③时间戳
④time函数
一、前言
学习的过程有时候会有些许枯燥,但换一种方式学习也算是一种有趣的事情,呀哈,写个代码玩玩,
[操作度:易
[涉及知识有:函数调用+循环结构do.while()+选择判断分支+switch语句
游戏大概就是这个样子,简简易易猜数字游戏^-^
[游戏设计需求:
1.电脑随机生产一个数字(1~100)
2.玩家猜数字
猜大了,电脑提示猜大了,猜小了,电脑提示猜小了
3.游戏可以一直玩,并且可以玩很多次,玩完之后可选择继续玩
以下为飞机游戏全部的代码,大家可以直接拷贝运行:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("*********************n");
printf("**** 猜数字游戏 ****n");
printf("****-------------****n");
printf("**** 1.play ****n");
printf("**** 0.exit ****n");
printf("*********************n");
}
//猜数字游戏的实现
void game()
{
int guess = 0;
//1.生成一个随机数
int ret = 0;
ret = rand()%100+1;
//2.猜数字
printf("现在来猜数字:>n");
while (1)
{
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了哟,hhhhhhhhhhn");
}
else if (guess > ret)
{
printf("大了大了,再想想再想想~n");
}
else
{
printf("恭喜你,猜对了,棒极了!!n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择:->n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("好耶!!我出一个数字,你来猜n");
game();
break;
case 0:
printf("已退出游戏,咱们下次再玩吧~n");
break;
default:
printf("请输入1或0,1开始游戏,0退出游戏n");
break;
}
} while (input);
return 0;
}
如果想要更了解清楚的,让我们一起继续看下去吧~ 说不定会有更厉害的同学将游戏改进,期待~对于俺,将我了解的一些东西用自己的语言复述一遍,也是一件有意思的事情
二、从游戏初始界面开始
一款游戏是可以玩很多次的,没玩够继续玩,所以主函数中出现循环,游戏进入之后会出现一个菜单,我们可以选择玩,也可以选择退出,菜单至少出现一次,用do.while()语句perfect
int main()
{
do
{
menu();
} while ();
return 0;
}
menu函数:
void menu()
{
printf("*********************n");
printf("**** 猜数字游戏 ****n");
printf("****-------------****n");
printf("**** 1.play ****n");
printf("**** 0.exit ****n");
printf("*********************n");
}
菜单有了,接下来解决输入的问题,输入1,开始游戏,输入0,退出游戏(这里不能真正的做到退出游戏,准确的说是程序结束),输入的不是1,也不是0,是其他的数怎么办?12、13、14、15……好家伙,这么多情况,嘿嘿,那用switch语句好了,多分支,所以我们的主函数变成了这样:
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择:->n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("好耶!!我出一个数字,你来猜n");
game();
break;
case 0:
printf("已退出游戏,咱们下次再玩吧~n");
break;
default:
printf("请输入1或0,1开始游戏,0退出游戏n");
break;
}
} while (input);
return 0;
}
在这里,其实有个很小Q的点,1代表玩游戏,0代表退出游戏,input是输入的数,当input为非0的时候,循环继续,当input为0的时候,循环才会终止,也就是说,只要我们输入0的时候,程序就彻底的结束了,即退出游戏,输入其他的非0数,游戏还可以玩,输入如果还不是1的话,菜单也会在打印一次,提示正确输入,输入1才可以开始游戏。
如果假设输入非0的数字代表退出游戏,如:1是play , 2是exit ,那输入2的时候,程序并不会结束,要想实现退出游戏就变得麻烦了,可以去试一下,
三、游戏实现
模块化程序,自己写的方便,有思路,易于找问题,后续修改,别人看也更方便
最重要的灵魂,游戏实现部分用的也是一个函数
//猜数字游戏的实现
void game()
{
int guess = 0;
//1.生成一个随机数
int ret = 0;
ret = rand()%100+1;
//2.猜数字
printf("现在来猜数字:>n");
while (1)
{
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了哟,hhhhhhhhhhn");
}
else if (guess > ret)
{
printf("大了大了,再想想再想想~n");
}
else
{
printf("恭喜你,猜对了,棒极了!!n");
break;
}
}
}
那怎样电脑生成一个随机数?
不急,慢慢来~
①rand函数
C语言中提供了一个生成随机数的函数——rand()函数
在cplusplus官网上查到的rand这个库函数的介绍
像各大网站,一般都是英文,后台挂个翻译器,慢慢习惯,就阔以理解了
rand函数:
效果是返回一个随机值,类型是int ,头文件是<stdlib.h> ,随机值的范围是0~RAND_MAX ,
RAND_MAX 相当于十进制的32767
rand() % 100
任何数 %100 得到的数是0~99之间的数,
rand() % 100 + 1 之后,
得到的数是0~100之间的数,也就是我们想要需要的随机数范围
rand函数使用的经典例子:
用法:
在调用rand函数之前 调用srand函数 效果是生成随机数生成器
②srand函数
简单介绍一下,
srand函数需要的是一个整型 ,(unsigned int)
如果传给srand函数的数是同一个数,那么rand函数生成的随机数是相同的,
给srand函数传100,运行如下:
给srand函数传200,运行如下:
总结:
如果rand函数想要返回一个随机值,需要传给srand函数的也是一个随机值,一个一直在变化的数,
问题来了,我们想要一个随机值,需要一个随机值,即用一个随机值产生一个随机值,啊这这这……
难不倒咱,
电脑上的时间是不是一直在变化的呀? yep ,
这里引用 时间戳
③时间戳
C语言提供了一个函数time,返回一个时间戳
④time函数
srand((unsigned int)time(NULL));
time函数的头文件是<time.h>
改进:
将srand函数放在主函数,因为整个程序中只需要调用一次srand函数,
这样可以使随机数更随机
每天进步一点点
趁着春节,快和家里人一起玩这个小游戏吧~
好玩好玩,体验一下不一样的游戏,
今天的博客就到这告一段落了,
求赞,求转发,求关注~
最后
以上就是虚幻康乃馨为你收集整理的【趣学】C语言猜数字游戏的全部内容,希望文章能够帮你解决【趣学】C语言猜数字游戏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复