#每日美图分享#
今天我们来用C语言代码来制作一个猜数字的游戏。
基本思路:
1.开始时,执行菜单来选择是否进行游戏。
2.选择进行游戏后我们需要电脑生成一个的随机数。
3.搞定随机数后,输入数字,如果输入的数字比电脑生成的随机数大,那么提示“猜大了”,反之亦然,直到猜对,猜对后再弹出菜单询问(循环)是否继续游戏。
其中最难搞定的是让电脑生成一个随机的数,在这里我们可以引入”时间戳“。
好,有了基本思路,我们开始尝试写写。
首先写好基本构架:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
}
void game()
{
}
int main()
{
return 0;
}
接下来,先弹出菜单,再考虑是否进行游戏,这是我们可以使用do...while循环语句,因为弹出菜单后会有多种情况,所以应该再循环里面讨一个switch分支结构。
因为程序是从主函数开始执行的所以:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
printf("**********************\n");
printf("****1.Play 0.Exit****\n");
printf("**********************\n");
}
void game()
{
}
int main()
{
int input=0;
do
{
menu();
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}
while(1);
return 0;
}
可以看到菜单已经能循环弹出了,接下来开始设计游戏内容,先用时间戳来设置随机数:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("**********************\n");
printf("****1.Play 0.Exit****\n");
printf("**********************\n");
}
void game()
{
int ret=0;
ret=rand();
printf("%d\n",ret);
}
int main()
{
int input=0;
srand((unsignde int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}
while(1);
return 0;
}
(这里为了更直观的显现出随机数,我在代码中写的是生成随机数然后打印出来,但接下来不会再显示出随机数。)
现在随机数是搞定了,但你们有没有发现这个随机数着实有点大,这不得让玩的人自闭呀(当然你想整人也行,嘿嘿)。我们可以考虑把随机数的范围缩小为1~100,只需:ret=rand()%100+1;
如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("**********************\n");
printf("****1.Play 0.Exit****\n");
printf("**********************\n");
}
void game()
{
int ret=0;
ret=rand()%100+1;
printf("%d\n",ret);
}
int main()
{
int input=0;
srand((unsignde int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}
while(1);
return 0;
}
好了,随机数完全搞定,让我们继续(先把打印随机数值的代码删掉):
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("**********************\n");
printf("****1.Play 0.Exit****\n");
printf("**********************\n");
}
void game()
{
int ret=0;
int guess=0;
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;
}
}
}
int main()
{
int input=0;
srand((unsignde int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}
while(1);
return 0;
}
现在就大功告成了,大家快去试着做一做,玩一玩哦~
(悄悄告诉你们,用二分法玩会更快哦)
都看到这里了,求你们点个赞吧!!!
标签:数字,int,ret,C语言,break,随机数,printf,input,游戏 From: https://blog.51cto.com/u_15815053/5759177