首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >猜数字游戏

猜数字游戏

作者头像
风中的云彩
发布2024-11-07 21:46:14
发布2024-11-07 21:46:14
2230
举报
文章被收录于专栏:C/C++的自学之路C/C++的自学之路

没有人喜欢孤独,只是不愿失望。

前言

这是我自己做的第三个小项目---猜数字游戏。后期我会继续制作其他小项目并开源至博客上。 上一小项目是关机整蛊游戏,没看过的同学可以去看看: 有关关机整蛊游戏的小项目

游戏要求

1.随机生成一个1-100之间的随机数。 2.玩家猜数,如果不对则给出提示范围,直到正确为止。

函数准备

rand()函数

函数功能:随机生成一个1-32767之间的伪随机数。

代码语言:javascript
复制
int rand ();

使用rand()函数之前,需要引入库函数<stdlib.h>。

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
	printf("%d", rand());
	return 0;
}

1. 由于rand()函数是根据它的种子来生成随机数。 2. 而它的种子默认值为1。 3. 所以直接使用时产生的是伪随机数,可以预测。

srand()函数

代码语言:javascript
复制
srand ((unsigned int)n);

1.程序中在调用 rand ()函数之前先调用 srand() 函数。 2.通过 srand() 函数的参数n,来设置rand()函数生成随机数的时候的种子。 3.只要参数n在变化,rand ()函数的种子就在变化,每次生成的随机数序列也就变化起来了。 4.srand()函数是不需要频繁调用的,⼀次运行的程序中调用一次就够了。

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
	srand(1);
	printf("%d", rand(srand( (unsigned int) n);
	return 0;
}

但此时又需要给srand()函数的参数n一个随机值。

time()函数

1. 函数功能:使用程序运行的时间作为种子。(因为时间时刻在发生变化) 2. 使用time()函数的时候需要包含头文件:<time.h>。

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	srand((unsigned int)time(NULL));
	printf("%d", rand());
	return 0;
}

优化范围

1.生成0-99之间随机数

代码语言:javascript
复制
rand()%100

2.生成1-100之间随机数

代码语言:javascript
复制
rand()%100+1

3.生成a-b之间的随机数

代码语言:javascript
复制
a+rand()%(b-a+1)

代码实现

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
void make_menu()
{
	printf("**欢迎来到猜数游戏**\n");
	printf("********************\n");
	printf("*******0.EXIT*******\n");
	printf("*******1.PLAY*******\n");
	printf("********************\n");
	return;
}
void game()
{
	int a = 0;
	int num=rand()%100+1;
	int chance = N;
	printf("已生成一个1-100的随机数\n");
	do
	{
		printf("你还有%d次机会\n",chance);
		printf("请输入你要猜的数:\n");
		scanf("%d", &a);
		if (a > num)
		{
			printf("猜大了\n");
		}
		else if (a < num)
		{
			printf("猜小了\n");
		}
		else if (a = num)
		{
			printf("恭喜,猜对了\n");
		}
	} while (--chance);
	if (chance == 0)
		printf("很遗憾,你的机会已经用完,游戏失败\n");
}
int main()
{
	srand((unsigned int)time(NULL));
	int input = 0;
	do
	{
		make_menu();
		scanf("%d", &input);
		switch (input)
		{
		case 0:
			printf("退出游戏!\n");
			break;
		case 1:
			printf("进入游戏!\n");
			game();
			break;
		default:
			printf("输入错误,请重新输入!\n");
			break;
		}
	} while (input);
	return 0;
}

致谢

感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 游戏要求
  • 函数准备
    • rand()函数
    • srand()函数
    • time()函数
  • 优化范围
  • 代码实现
  • 致谢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档