例:系统随机生成一个数,玩家进行猜,直到猜对为止
算法思想:
首先玩家进入该游戏后也要进行选择,是玩还是退出,可以将此做出一个菜单函数,供玩家参考,让玩家进行选择
当玩家选择玩的时候,系统生成随机数,玩家开始猜,猜对了,该局游戏即结束,猜大或猜小,系统要给予提示,直到玩家才对为止。
当玩家玩玩一次后,还想继续玩或退出,此时要不断的循环供玩家选择。
程序代码:
void menu()
{
printf("*******************************\n");
printf("********1.开始游戏 0.退出******\n");
printf("*******************************\n");
}
void game()
{
int num = 0;
//srand((unsigned int)time(NULL));
//时间很近,所以把该语句放在主函数中。
int n = rand() / 100+1;//产生1-100之间的随机数
while (1)
{
printf("请输入数字:");
scanf("%d", &num);
if (n == num)
{
printf("猜对了\n");
break;
}
else if (n > num)
{
printf("猜小了\n");
}
else
{
printf("猜大了\n");
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏");
break;
default:
printf("选择错误,请重新输入\n");
break;
}
} while (input);
system("pause");
return 0;
}
注意:在运用rand()生成随机数时,要先用srand()进行调用设置随机数的生成起点,当起点不同,生成的随机数序列不同,所以不论什么时候执行该函数,起点都要
有变化,所以运用时间函数time()做srand的参数,time返回的数计算机生成的时间1970年1月1日0时0分0秒到执行到调用该函数处所用的时间,所以一直是变化的,
这样每次执行系统都会生成不同的随机数序列。
否则每次执行系统都会生成相同的随机数序列