如何实现一个猜数字游戏
用分支循环实现猜数字游戏。稍微涉及一点点函数,但不多只会出现两次,第一次是刚开始出现的,最后一次会显示全部的代码
实现一个1-100的猜数字游戏;
写一个代码,首先要知道,需求是什么根据。需求进行写代码。比如猜数字游戏,首先我们明白,要写一个1-100猜数字的游戏。
首先不管三七二十一先给main函数写出来
#include<stdio.h>
int main
{
return 0;
}
写完之后我们要告诉用户,这是个游戏。让用户知道自己玩的是什么游戏,游戏也要有界面,我们告诉用户这是猜数字游戏。
void menu() //游戏显示页面
{
printf("************************\n");
printf("*******猜数字游戏*******\n");
printf("******* 1 play ********\n");
printf("******* 0 exit ********\n");
printf("************************\n");
}
#include<stdio.h>
int main()
{
menu(); //游戏显示界面
return 0;
}
当我们拥有界面之后,我们要进入游戏,按 1 开始游戏 按 0 结束游戏,但是如果有人按其他的呢,那要告诉它了。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int input = 0;
menu(); //游戏显示界面
printf("请选择:>>>");
scanf("%d", &input);
switch (input)
{
case 1://玩游戏
break;
case 0:
printf("退出游戏");
break;
default:
printf("请输入 1 或 0 ");
break;
}
return 0;
}
如果他不小心输入错了,我们还要让他返回来继续执行。怎么办? 用什么方法实现呢?
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int input = 0;
menu(); //游戏显示界面
do
{
printf("请选择:>>>");
scanf("%d", &input);
printf("\n");
switch (input)
{
case 1://玩游戏
break;
case 0:
printf("退出游戏");
break;
default:
printf("请输入 1 或 0 \n");
menu();
break;
}
} while (input);
return 0;
}
这样当输入其他数的时候就会提醒,我们发现,上个代码加上do while 后确实,实现了我们想要的东西,但是界面是是连在一起的看着非常难受,为了看着不那么难受我们在scanf 后进行了换行,同时为了提醒输出之后重新输,我们在default后面加入了 menu函数。
这个基本的游戏界面就实现了。下面就是进入游戏,我们在 case 1 后进入游戏,1 -100的猜数字游戏,电脑随机出一个数,你去猜,猜打了要告诉你 ,猜小了,也要告诉你,赢了,输了都要告诉你,真正数是什么也要告诉你,才几次输呢等
我们在 case 1 里面实现,这时候我们要创建一个函数 比如说创建一个函数 play函数 ,在里面进行游戏规则的制定
void play() //进入游戏之后
{
int a = rand() % (100 + 1);//首先实现 1-100的随机数
int guess = 0; //用户输入的数字
int count = 6;
printf(" 猜数字游戏 \n"); //提示
printf(" 请输入您的数字 \n");
printf(" 数字的范围1-100之间 \n ");
//scanf("%d", &guess); 这两个代码不能写外面否则if只会判断一次然后死循环打印
while (count) //由于不可能一次就判断就能判断对所以需要循环。
//游戏要有输赢,为了增加一些难度我们设置6次机会
{
printf("您有%d次机会\n ", count); //提醒用户还有几次机会
scanf("%d", &guess); //用户输入猜测的数字
if (guess < a) //进行判断
{
printf(" 猜小了\n ");
}
else if (guess > a)
{
printf(" 猜大了\n ");
}
else
{
printf("恭喜您,猜对了\n");
printf("正确数字是:%d", a);
break;
}
count--;//每判断一次就减少一次机会
}
if (count == 0) //用户输了之后
{
printf("很遗憾您输掉了比赛\n");
printf("正确数字是:%d\n", a); //让用户输的明白
}
}
至此我们关于随机数生成游戏的代码基本完成。下面是所有的代码
//猜数字游戏
// 游戏显示界面
//游戏内容界面
// 游戏规则的制定:
// 产生一个1-100的随机数进行猜大小
//产生一个限制条件
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
void menu() //游戏显示页面
{
printf("************************\n");
printf("*******猜数字游戏*******\n");
printf("******* 1 play ********\n");
printf("******* 0 exit ********\n");
printf("************************\n");
}
void play() //进入游戏之后
{
int a = rand() % (100 + 1);//首先实现 1-100的随机数
int guess = 0; //用户输入的数字
int count = 6;
printf(" 猜数字游戏 \n"); //提示
printf(" 请输入您的数字 \n");
printf(" 数字的范围1-100之间 \n ");
//scanf("%d", &guess); 这两个代码不能写外面否则if只会判断一次然后死循环打印
while (count) //由于不可能一次就判断就能判断对所以需要循环。
//游戏要有输赢,为了增加一些难度我们设置6次机会
{
printf("您有%d次机会\n ", count); //提醒用户还有几次机会
scanf("%d", &guess); //用户输入猜测的数字
if (guess < a) //进行判断
{
printf(" 猜小了\n ");
}
else if (guess > a)
{
printf(" 猜大了\n ");
}
else
{
printf("恭喜您,猜对了\n");
printf("正确数字是:%d", a);
break;
}
count--;//每判断一次就减少一次机会
}
if (count == 0) //用户输了之后
{
printf("很遗憾您输掉了比赛\n");
printf("正确数字是:%d\n", a); //让用户输的明白
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL)); //生成一个随机数
do
{
menu(); //游戏显示界面
printf("请选择:>>>");
scanf("%d", &input);
printf("\n");
switch (input)
{
case 1://玩游戏
play(); //进入游戏之后
break;
case 0:
printf("退出游戏");
break;
default:
printf("请输入 1 或 0 \n");
menu();
break;
}
} while (input);
return 0;
}