游戏概述
利用选择,循环,少量函数的知识编写一款猜数字小游戏
1.实现电脑生成一个随机数(1-100)
2.每一次猜一个数并给予反馈(猜大了或者小了)
直到猜对为止!!!
整体思路
主体部分则是先提示是否进入游戏的菜单,写成 void menu() 的函数,随后根据选择是否进入游戏或退出游戏。若进入游戏则跳转进入到void game() 的函数,进行游戏并不断给予反馈直到猜中为止。
效果如图:
代码实现
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu();//菜单函数
void game();//游戏函数
int main()
{
//生成随机数,整个工程只需要设置一次
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();//函数打印菜单
printf("请选择(0/1): ");//选择是否玩游戏
scanf("%d", &input);
if (input == 1)
{
game();//进入游戏
continue;
}
else if (input == 0)
{
printf("游戏结束\n");//退出游戏
break;
}
else
{
printf("选择错误,请重新输入\n");
continue;
}
} while (input);
return 0;
}
void menu()
{
printf("**** Do you want to play a game ***\n");
printf("*************************************\n");
printf("******* 1 -> enter game *******\n");
printf("******* 0 -> quit the game *******\n");
printf("*************************************\n");
}
void game()
{
int num = rand()%100+1;
int guess = 0;
while (1)
{
printf("请猜数字\n");
scanf("%d", &guess);
if (guess > num)
{
printf("猜大了\n");
continue;
}
else if (guess < num)
{
printf("猜小了\n");
continue;
}
else
{
printf("猜对了,答案是:%d\n", num);
printf("\n");
break;
}
}
}
技术总结
在游戏函数中我们利用rand ( ) 函数可以产生随机值,但是其范围为0-32767,所以使之对100求模加一则可以得到1-100的随机数。
实际上rand ( ) 函数需调用srand( ) 函数,srand( ) 为初始化随机数发生器,为rand( ) 函数生成随机数提供seed种子,如果我们不对srand ( ) 函数中参数进行改变,则我们每次玩游戏得到的随机值都是一样的
而time ( ) 函数返回的是时间戳,将其返回值放入srand ( )函数则可以获得不同的随机值