目录
🤞 1)生成菜单
🤞 4)玩家猜数字
💕创作不易,先赞后看养成习惯
哈哈哈哈哈哈
1)生成菜单
玩这个游戏,菜单里无非包含两个选择 :一.就是玩游戏;二.就是不玩游戏。 而且如果我想玩多把就要运用循环,既然有循环就要想到终止,我们知道非0为真,0为假,所以不如我们选择1和0来做我们的玩与不玩的条件,这样后面会方便很多,kakaka 不管三七二十一,我们都要先来一次选择的菜单来吧,代码如下:
void menu()
{
printf("******************************\n");
printf("********* 1.play *********\n"); //选择1 玩游戏
printf("********* 0.exit *********\n"); //选择0 退出游戏
printf("******************************\n");
}
打印完菜单我们肯定要调用到循环里,代码如下:
int main()
{
do
{
menu(); //调用菜单,由于不管怎样选择都要至少用到一次菜单,所以用do while
} while ();
return 0;
}
打印完菜单之后我们就要选择玩与不玩对不对?
2)玩家选择玩游戏与不玩游戏
根据菜单的提示,我们选择玩游戏和不玩游戏,都要输入一个数字来判断玩或者不玩,所以我们就来定义一个变量input,代码如下:
int main()
{
int input = 0;
do
{
menu();
printf("请选择>(0/1):");
scanf("%d", &input); //要玩多次所以放在循环里
} while (input);
return 0;
}
我们输入了,肯定就要来接受从而判断玩与不玩,两个选择,我们用 switch和case 分支语句去选择,选择1 就进行猜数字游戏,0就退出嘛,选择其它的,我们就报一个选择错误重新选择,代码如下:
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择>(0/1):");
scanf("%d", &input);
switch (input)
{
case 1 :
game();
break;
case 0 :
printf("退出游戏\n");
break;
default :
printf("选择错误,请重新选择\n");
}
} while (input); //循环条件也是input 输入0 就退出循环了
return 0;
}
3) 猜数字游戏核心实现
首先为了玩猜数字我们要先让电脑生成一个随机数字,随机数字的生成要运用到函数 rand() 我们来看一下这个函数的返回类型和原型
上面说调用函数rand() 前必须再调用 srand() 接下来我又把这个函数的原型和返回类型给大家看
srand()里需要一个一直改变的数,这我们怎么办呢,在生活中存在一直改变的数就是时间了,所以不妨我们用时间来满足我们的条件(引用一个time的函数实现)看代码:
time()函数 它的返回类型是整型,由于不需要用到它的任何操作,就将NULL放在time里
void game()
{
srand((unsigned int)time(NULL));
int ret = rand() % 100 +1; //我们假设猜1-100的数字
}
4)玩家猜数字
玩家猜数字,首先我们需要输入一个数字,来判断我们与电脑生成的数字作比较,如果大于电脑的我们就提示说 “猜大了”,小于电脑的提示 “猜小了”,在我们猜的过程中一般不能是一次就猜对了,所以我们这里要多次输入并判断,因此这些要放在循环当中,猜对了就跳出循环,代码如下:
void game()
{
int ret = rand() % 100 +1;
int guess = 0;
while (1)
{
printf("\n请输入你要猜的数字:");
scanf("%d", &guess);
if (guess < ret)
{
printf("\n猜小了\n");
}
else if (guess > ret)
{
printf("\n猜大了\n");
}
else
{
printf("\n恭喜你,猜对了\n"); //如果猜对就跳出循环
break;
}
}
}
以上就是全部的分解代码,以下是全部代码:特别要注意我们生成随机数并不一次游戏只需生成一次所以我们将srand()函数放在我们的主函数里面
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("*****************************\n");
printf("********* 1.play ********\n");
printf("********* 0.exit ********\n");
printf("*****************************\n");
}
void game()
{
int ret = rand() % 100 +1;
int guess = 0;
while (1)
{
printf("\n请输入你要猜的数字:");
scanf("%d", &guess);
if (guess < ret)
{
printf("\n猜小了\n");
}
else if (guess > ret)
{
printf("\n猜大了\n");
}
else
{
printf("\n恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择>(0/1):");
scanf("%d", &input);
switch (input)
{
case 1 :
game();
break;
case 0 :
printf("退出游戏\n");
break;
default :
printf("选择错误,请重新选择\n");
}
} while (input);
return 0;
}