【C语言】用C语言写一个猜数字游戏

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;
}

4.结果展示

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值