1.游戏规则
1.游戏开始,电脑会从1-100随机生成一个数
2.玩家在屏幕上输入猜的数字
3.电脑根据这两个数比较大小;若是猜大了,屏幕显示猜大了,若是猜小了,屏幕显示猜小了。
4.循环上面的操作,直至猜正确。
2.实现逻辑
1.首先还是打印一个菜单供玩家选择游戏还是退出程序。
2.选择游戏就要有随机数产生,rand()%100+1
,这个函数就能让程序在1-100中随机寻找一个数字。
3.程序这里选择do while()语句,无论怎么样都先执行一次。
4.猜错了就一直循环猜。
3.代码展示
1.写一个do while语句进入循环
do
{
menu();
printf("请选择->");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
} while (input);
2.生成一个随机数
srand((unsigned)time(NULL));
一旦调用 rand 函数,就会得到一个大于等于0且小于等于 RAND_MAX 的随机数。RAND_MAX的值取决于编程环境,即大于等于32767。
int r = rand() % 100 + 1;
//这是大于等于 0 且 小于等于 a 的随机数。
3.打印菜单
void menu()
{
printf("********************************\n");
printf("**** 1.play ****\n");
printf("**** 0.exit ****\n");
printf("********************************\n");
}
4.进入游戏
void game()
{
int r = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜得数字->:");
scanf("%d", &input);
if (r > input)
printf("猜小了\n");
else if (r == input)
{
printf("猜对了\n");
break;
}
else
printf("猜大了\n");
}
}
5.完整代码
void menu()
{
printf("********************************\n");
printf("********* 猜数字游戏 *********\n");
printf("**** 1.play ****\n");
printf("**** 0.exit ****\n");
printf("********************************\n");
}
void game()
{
int r = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜得数字->:");
scanf("%d", &input);
if (r > input)
printf("猜小了\n");
else if (r == input)
{
printf("猜对了\n");
break;
}
else
printf("猜大了\n");
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请选择->");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}