这是我的主函数,用switch语句能更好的选择进行游戏操作,再加上do while语句就可以重复玩游戏了。
个人感觉在写这种小游戏时要提前写好框架,然后在框架中添瓦造物,完善程序各个功能。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
#include<time.h>
void menu()
{
printf("####################################\n");
printf("#########欢迎来到猜数字游戏#########\n");
printf("######输入>1开始,输入>0退出########\n");
printf("####################################\n");
}
你得有一个菜单,就像你的游戏界面一样,让你的程序结果更好。
根据游戏界面选择进入游戏。然后你肯定得先生成一个随机数,然后你才能进行猜数字游戏,
一开始我只用了rand()随机函数;但是运行后发现他每次随机数都是一样的,没有变,
这样你就不能多次进行游戏了,然后我用cplusplus网站查了一下这个函数,
发现这个函数的用法,是要先使用srand((unsigned int)time(NULL));
调用时间函数,这样每次生成的随机数都不一样了。
void Reserach()
{
int ret = 0;
int num = 0;
ret = rand()%100+1;
while(1)
{
printf("请猜数字>");
scanf("%d",&num);
if(ret == num)
{
printf("恭喜您,猜对了\n");
break;
}
else if(ret >= num)
{
printf("猜小了\n");
}
else
{
printf("猜大了\n");
}
}
}
这是我调用的游戏函数,rand()生成随机数范围是:0~32767
ret = rand() % 100 表示对他进行模运算,是生产0到99的随机数,缩小范围就更好多的操作了。
if(ret == num)
{
printf("恭喜您,猜对了\n");
break;
}
如果这个语句中没有了break;当你才对游戏后想要再玩一局就不能玩了
他还在上次生成那个随机数循环中,没有跳出了,所以你需要加上break,跳出了重新开始游戏
int main()
{
int input =0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("游戏准备开始,请选择");
scanf("%d",&input);
switch(input)
{
case 1: Reserach();
break;
case 0:
break;
default :
printf("输入错误,请重新输入\n");
break;
}
}while(input);
system("pause");
return 0;
}
这是我的主函数,用switch语句能更好的选择进行游戏操作,再加上do while语句就可以重复玩游戏了。
个人感觉在写这种小游戏时要提前写好框架,然后在框架中添瓦造物,完善程序各个功能。