我们可以用一些简单的循环语句来实现一个猜数字游戏。这个猜数字游戏逻辑大体是,我们随机生成一个数字,然后输入一个数字,比较这两个数字,如果猜大了,就提示大了,小了就提示小了。
值得注意的是,我们的随机数在一次游戏中是不能变的,否则是猜不中的。
下面我们看一下代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("***********猜数字游戏************\n");
printf("*********************************\n");
printf("*****1.play 0.exit**********\n");
printf("*********************************\n");
printf("*********************************\n");
}
void game()
{
int num=0;
int answer= rand()%100;
while(1)
{
printf("请输入你猜的数字:>");
scanf("%d",&num);
if(num>answer)
printf("猜大了\n");
else if(num<answer)
printf("猜小了\n");
else
{
printf("恭喜你,猜中了\n");
break;
}
}
}
void test()
{
int input=4;
do
{
menu();
printf("请输入你的选择:>");
scanf("%d",&input);
switch(input)
{
case 0:
printf("退出游戏\n");
break;
case 1:
printf("游戏开始\n");
game();
break;
default:
printf("选择错误\n");
}
}while(input);
}
int main()
{
srand((unsigned int)time(NULL));
//猜数字游戏
test();
return 0;
}
我们生成随机数时,必须用srand((unsigned int)time(NULL)),否则每次游戏的随机数都是相同的。
生成随机数我们用的是rand()函数。menu()函数是我们的菜单函数,调用它可以打印一个简易的菜单。game()函数是每一次的游戏函数,我们使用while()循环来一直输入数字,直到猜中,跳出循环,本次游戏结束。test()实现整个游戏退出和再来一次的逻辑,当input为非0,do while()语句就会一直执行,而input的不同,会进入不同switch语句中。