今天来给大家介绍一个有趣的小游戏——猜数字,可能很多人都曾玩过这个游戏,但在这里我希望你即享受了游戏快乐的同时也能了解这个游戏的本质。
首先我们来设计一下游戏的选择界面:
void menu()
{
printf("***************************\n");
printf("**** 1.play 0.exit ****\n");
printf("***************************\n");
}
当然大家可以根据自己的喜好来把它变得多元化,在这里提供一个范本
第二部我们要保证选择界面能够顺利地进行下去:
int input = 0;
do
{
menu();
printf("请选择:<\n");
scanf("%d",&input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
这里用到了do while语句,它可以保证在不想退出的情况下你可以继续选择
接下来也是最关键的一步:我们需要设计这个游戏的内容。
void game()
{
int guess = 0;
int ret = rand() % 100 + 1;
while (1)
{
printf("请输入要猜的数字<:");
scanf("%d",&guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了!\n");
break;
}
}
}
这是一个可以一直循环猜数的语句,当你所猜的数字与所给的随机数进行比较时,可以提示你所猜数字的范围。
这就是我们猜数字游戏的全部内容啦。
接下来为大家介绍这里代码的一些细节:
rand函数,它的作用是在电脑上上返回一个1-RAND_MAX之间的随机整数,即1-32767之间。
具体应用如下:v2 = rand() % 100 + 1; // v2 in the range 1 to 100
这是确定了他的范围,方便我们猜测。
srand函数则是调用rand之前设置一个随机数的生成器
一般和srand函数配合使用的是time函数,将time函数的类型强制转换为unsigned int,它的作用是返回一个时间戳,即是计算机在调用time函数的这个时间和计算机的起始时间(1970.1.1 0:0:0)之间的一个差值,单位是秒
应用方法:srand((unsigned)time(NULL));
而且srand函数只能调用一次,不要频繁的调用,否则生成的数不够随机。
调用time函数的头文件为#include<time.h>
调用srand,rand函数的头文件为#include<stdlib.h>