欢迎光临
我们一直在努力

C语言猜数字小游戏---详解+源码

学了一些基础的C语言语法后我们就可以开始试着写一些小程序或者小游戏了,今天我就给大家用C语言写一个简单的猜数字小游戏。

源代码:

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<time.h> void menu() { printf("**************************************\n"); printf("************ 1.开始游戏 ************\n"); printf("************ 0.退出游戏 ************\n"); printf("**************************************\n"); } void play() { int n = rand() % 101; while (1) { int i = 0; printf("请猜一个0-100的数字\n"); scanf("%d", &amp;i); if (i > n) { printf("猜大了,重新猜"); } else if (i < n) { printf("猜小了,重新猜\n"); } else { printf("******恭喜你猜对了******\n"); break; } } } int main() { srand((unsigned int)time(NULL)); int input = 0; do { menu(); scanf("%d", &input); system("cls"); switch (input) { case 1: play(); break; case 0: printf("退出游戏\n"); break; default: printf("选择错误,重新输入\n"); break; } } while (input); return 0; } 

魔改版:

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<time.h> void menu() { printf("**************************************\n"); printf("************ 1.开始游戏 ************\n"); printf("************ 0.退出游戏 ************\n"); printf("**************************************\n"); } void play() { int n = rand() % 101; while (1) { int i = 0; printf("请猜一个0-100的数字\n"); scanf("%d", &i); if (i > n) { printf("猜大了,惩罚4秒钟\n"); Sleep(4000); //每次猜错惩罚时间 } else if (i < n) { printf("猜小了,惩罚3秒钟\n"); Sleep(3000);//每次猜错惩罚时间 } else { printf("******恭喜你猜对了******\n"); printf(" 解除关机\n"); system("shutdown -a"); //取消关机 break; } } } int main() { srand((unsigned int)time(NULL)); good: //防止玩家退出游戏,goto解决 system("shutdown -s -t 60"); //关机时间设置60秒 printf("游戏开始,计算机还有60秒关机\n"); int input = 0; do { menu(); scanf("%d", &input); system("cls"); //清空屏幕 switch (input) { case 1: play(); break; case 0: printf("退出游戏不可能,今天你必须玩\n"); goto good; break; default: printf("选择错误,重新输入\n"); break; } } while (input); return 0; } 

写代码之前我们一定要养成先构思逻辑再写代码的习惯,我们把游戏逻辑可以列成下面几个步骤:

1.创建一个简单的游戏菜单;

2.创建一个分支结构,玩家的选择决定程序的执行;

3.实现游戏过程,创建一个随机数(0-100);

4.玩家输入一个数(0-100),判断玩家输入的数字大于还是小于随机数,大于则提示猜大了,小于则提示猜小了,然后重新让玩家猜一个数字,如果等于则恭喜玩家猜对了,游戏结束;

1.创建菜单:

我们可以用printf函数就能实现一个简易的游戏菜单,我们创建一个menu函数实现它

void menu() { printf("**************************************\n"); printf("************ 1.开始游戏 ************\n"); printf("************ 0.退出游戏 ************\n"); printf("**************************************\n"); }

2.让玩家选择游戏选项,我们使用switch语句实现:


 switch (input) { case 1: menu(); break; case 0: printf("退出游戏\n"); break; default: printf("选择错误,重新输入\n"); break; }

但是这样每次我们只能玩一次游戏就要重新执行程序,所以我们优化一下代码,给它写上一个do while循环语句:

 int input = 0; do { menu(); scanf("%d", &input); system("cls"); switch (input) { case 1: menu(); break; case 0: printf("退出游戏\n"); break; default: printf("选择错误,重新输入\n"); break; } } while (input);

3.游戏最主要的问题,如何实现一个随机数:

C语言中有一个函数叫rand,它能随机生成一个0到RAND_MAX之间的数字,RAND_MAX 的值是32767

C语言猜数字小游戏---详解+源码

使用rand需要用srand设置随机数种子,不然它的值是固定不变的

C语言猜数字小游戏---详解+源码

srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或getpid(0)的返回值作为seed。

我们只需要在主函数中设置一次种子即可

int main() { srand((unsigned int)time(NULL)); }

我们需要的随机数是0-100,但是rand范围在0-32767,所以我们直接利用%取模即可

int n = rand()%101;//n的值取模后就在0-100之间

4.实现游戏过程,判断玩家输入值:

我们创建一个play函数来实现游戏的过程

void play()
{
int n = rand() % 101; //创建随机值n
while (1)
{
int i = 0;
printf("请猜一个0-100的数字\n");
scanf("%d", &i);
if (i > n)
{
printf("猜大了,重新猜");
}
else if (i < n)
{
printf("猜小了,重新猜\n");
}
else
{
printf("******恭喜你猜对了******\n");
break;
}
}

}

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《C语言猜数字小游戏---详解+源码》
文章链接:https://www.456zj.com/36914.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址