经典简单的猜数字小游戏

目录

前言

思路

方法

实现过程

1.我们先从易到难,打印出我们的菜单。(采用函数的方法,届时我们可以直接使用)

2.接下来,我们可以实现游戏主体(仍然采用函数的方法,代码更加清晰)

生成随机数的方法

那么我们就可以写游戏的主体了。

开始编写所需的代码,来实现选择

最终结果​编辑

全部代码


前言

        C语言的学习中,作为新手小白,学会了循环后,我们就可以写一个简单的小程序练练手了!

思路

        系统首先生成一个随机数,我们可以通过不停的输入,系统输出过大或者或小的反馈,并通过逐一减少默认数字的范围之后,最终锁定目标。

方法

1.随机数的生成。

2.游戏菜单,可供玩家选择游玩或者退出。

3.不管玩家开不开始游戏,都需要先循环一次,就考虑到用do…while循环和switch分支循环来判断玩家输入的数字,并做出相应的代码运行。

实现过程

1.我们先从易到难,打印出我们的菜单。(采用函数的方法,届时我们可以直接使用)

void menu()
{
	printf("***************\n");
	printf("**** 1.play ***\n");
	printf("**** 0.exit ***\n");
	printf("***************\n");
}

这里使用void

如果函数无参数,那么应该声明其参数为void

如果我们所写的函数不接受任何参数,那么一定要指明其参数为void。

2.接下来,我们可以实现游戏主体(仍然采用函数的方法,代码更加清晰)

想要实现这一步,我们就要清楚,系统如何生成随机数!

生成随机数的方法

1.在这里插入图片描述

 2.

3.在这里插入图片描述 这里time_t的类型就是 在C语言中被定义为长整型,而srand()函数的参数类型为unsigned int (无符号整形),所以使用时要强制类型转换,而且**time()**函数,不需要设置参数,故用NULL代替。

 然后根据我们从MSDN看到的,头文件需要加入     

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

        但是,当我们运行时可以发现,生成的随机数有时会过大,所以我们采用对rand取余100,那么生成的数字一定是0~99,然后加上1,即可生成我们所要的随机数!

int number1 = rand() % 100;

那么我们就可以写游戏的主体了。

void game()
{
	int random_num = rand() % 100 + 1;
	int input = 0;
	while (1)
	{
		printf("请输入你想要猜的数值\n");
		scanf("%d", &input);
		if (input > random_num)
			printf("您输入数值过大\n");
		else if (input < random_num)
			printf("您输入的数值过小\n");
		else
		{
			printf("恭喜你!猜对了捏!\n");
			break;
		}
	}
}

开始编写所需的代码,来实现选择

int main()
{
	int input = 0;
	srand((unsigned)time(NULL));//srand()函数的参数类型为unsigned int (无符号整形),所以使用时要强制类型转换,而且**time()**函数,不需要设置参数,故用NULL代替。
	do
	{
		menu();
			printf("请输入1或0,开始或者退出游戏\n");
			scanf("%d", &input);
			switch (input)
			{
			case 1:
				game();
				break;
			case 0:
				break;
			default:	
				printf("选择错误,请重新输入!\n");
				break;
			}
					
	} while (input);
	return 0;
}

最终结果

全部代码

​
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h> 

void menu()
{
	printf("***************\n");
	printf("**** 1.play ***\n");
	printf("**** 0.exit ***\n");
	printf("***************\n");
}
void game()
{
	int random_num = rand() % 100 + 1;
	int input = 0;
	int max=100;
	int min=0;
	while (1)
	{
		printf("请输入你想要猜的数值\n");
		scanf("%d", &input);
		if (input > random_num)
		{
				printf("您输入数值过大\n");
			max= input;
			printf("猜测范围要在%d - %d\n", min,max);
	}
		else if (input < random_num)
		{
				printf("您输入的数值过小\n");
			min = input;
				printf("猜测范围要在%d - %d\n", min,max);
		}
		else
		{
			printf("恭喜你!猜对了捏!\n");
			Sleep(1000); 
			system("cls"); 	
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned)time(NULL));
	do
	{
		menu();
			printf("请输入1或0,开始或者退出游戏\n");
			scanf("%d", &input);
			switch (input)
			{
			case 1:
				game();
				break;
			case 0:
				break;
			default:	
				printf("选择错误,请重新输入!\n");
				break;
			}
					
	} while (input);
	return 0;
}

​
你的❤️点赞是我创作的动力的源泉
你的✨收藏是我奋斗的方向
你的🙌关注是对我最大的支持
你的✏️评论是我前进的明灯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值