建立猜数字游戏所需要的知识有:循环和函数,只要了解这两个知识点,就可以搭建这样一个简易而又有趣的小游戏!
目录
首先,第一步,创立一个主函数,这是程序运行的主题,我们所要搭建的枝叶,也是从这个框架中逐步扩展出去的,
1创立主题部分
首先,第一步,创立一个主函数,这是程序运行的主题,我们所要搭建的枝叶,也是从这个框架中逐步扩展出去的,
#include<stdio.h>
int main()
{int input=0
do{
}while();
return 0;
}
我们已经搭建好了函数的主题部分,现在需要思考,要实现猜数字程序,我们还需要运用到哪些函数?
2加入菜单
相信大家都玩过单机小游戏,我们首先接触到的就是菜单,菜单中有基本的选项:选择游戏或者退出游戏,因此我们需要一个菜单,也就是menu函数(在do while循环中加入)。
下面是这个代码的进一步完善:
void menu()
{
printf("************************\n");
printf("**** 1.play *******\n");
printf("**** 2.exit *******\n");
printf("************************\n");
}
#include<stdio.h>
int main()
{
int input=0
do{
menu();
printf("请选择:");
scanf("%d",&input);//输入0或1选择是否开始游戏
}while(input);
return 0;
}
3加入随机数函数
既然是猜数字游戏,那么我们需要一个函数来生成随机数,在cplusplus中搜索rand()函数,我们可以了解它的使用方法。实际上,由此函数生成的随机数是有范围的:0到RAND_MAX之间。而这个函数中随机数的生成并不是真正生成,而是伪随机数:看似随机,实际每一次生成的值固定,由种子决定。
那么我们可以让种子变化来使随机数真正随机。
自然,需要引用srand函数和time函数。time函数能够生成时间戳,使得每次结果一定不同。
void menu()
{
printf("************************\n");
printf("**** 1.play *******\n");
printf("**** 2.exit *******\n");
printf("************************\n");
}
#include<stdio.h>
#include<time.h>
int main()
{
int input=0
srand((unsigned int)time(NULL));//
do{
menu();
printf("请选择:");
scanf("%d",&input);//输入0或1选择是否开始游戏
}while(input);
return 0;
}
当生成菜单,在用户做出选择之后,需要跳转界面,以满足用户的需求。因此,我们需要添加一个switch函数,来完成以上目的。
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择\n");
break;
}
在进入游戏后,我们需要函数来完成进入游戏之后的过程。
void game()
{
int guess=0;
int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
while(1)//一直循环
{
printf("请输入要猜的数字:>");
scanf("%d",&guess);
if(guess<ret)
{
printf("猜小了\n");
}
else if(guess>ret)
{
printf("猜大了\n");
}
else {
printf("猜对了,恭喜你!数字是:%d\n",ret);
break;
}
}
4设置游戏次数
为了使程序更加优化,我们还可以设置游戏次数来让游戏过程更加刺激!
void game()
{
int guess=0;
int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
int count=5;//设置游戏的次数为五次
while(count)//一直循环改为根据次数进行循环
{
printf("请输入要猜的数字:>");
scanf("%d",&guess);
if(guess<ret)
{
printf("猜小了\n");
}
else if(guess>ret)
{
printf("猜大了\n");
}
else {
printf("猜对了,恭喜你!数字是:%d\n",ret);
break;
}
count--;//每进行一次,次数减少1
if(count==0)
{
printf("次数用完了,正确答案是:%d\n",ret);
}
}
5Finally!!
将我们搭建的框架组合起来,就得到了完整的程序代码:
void menu()
{
printf("************************\n");
printf("**** 1.play *******\n");
printf("**** 2.exit *******\n");
printf("************************\n");
}
void game()
{
int guess=0;
int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
int count=5;//设置游戏的次数为五次
while(count)//一直循环改为根据次数进行循环
{
printf("请输入要猜的数字:>");
scanf("%d",&guess);
if(guess<ret)
{
printf("猜小了\n");
}
else if(guess>ret)
{
printf("猜大了\n");
}
else {
printf("猜对了,恭喜你!数字是:\n",ret);
break;
}
count--;
if(count==0)
{
printf("次数用完了,正确答案是:\n",ret);
}
}
#include<stdio.h>
int main()
{
int input=0
do{
menu();
printf("请选择:");
scanf("%d",&input);//输入0或1选择是否开始游戏
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择\n");
break;
}
}while(input);
return 0;
}
既然这样的话,我只能玩两把了(bushi)
在我玩了10次后,终于猜对了一次,艰难。
不知道你有没有学会呢,VS!启动!快跟我一起猜数字吧(doge),赌狗的游戏~~~~