C语音实现猜数字小游戏

本文介绍了使用C语言在VS2022环境中开发的一个猜数字游戏,通过switch语句处理菜单选项,包括开始游戏、结束、调整难度等。游戏逻辑涉及随机数生成、用户输入验证和不同难度下的游戏规则。
摘要由CSDN通过智能技术生成

 基础环境 

   IDE:VS2022,x64,编译器:VSMC
   源码地址:https://gitee.com/bgssc/c-code/tree/master/therdC_2024_1_23
   语言:C 
   用到的语句:switch,函数,if,while循环

整体代码(图片)
  

拆分实现

 1.菜单      

 这部分主要使用switch语句实现,通过用户输入来进行,1.开始,2.结束,3.调整难度等选项,这里不多讲switch语句的基本语法与使用方式,

实现方法使用一个接受用户输入的整形变量用,通过input对整体游戏的进行,结束,开始进行控制,当用户输入1时会进入游戏实现部分,用printf了测试当switch语句是否成功(注:printf需要使用头文件stdio.h)
 

int main()
{
	int input = 0;
	do
	{
	
		printf("***********************************\n");                      
		printf("************1,paly             ****\n");
		printf("************2.exit             ****\n");
		printf("************3.increase diffcult****\n");
		printf("***********************************\n");
		printf("请输入->");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("猜数字游戏");
			break;
		case 2:
			input = 0;
			break;
		case 3:
			printf("选择困难难度");;
		default:
			printf("输入错误");
			break;
		}
		
	} while (input);

2.游戏实现

游戏逻辑是 随机生成一个范围内的数字,与玩家输入的数字进行对比
对比情况分为4种 
1.输入的数字等于随机生成的数字    -》》》打印游戏获胜 跳到菜单
2.输入的数字小于随机生成的数字    -》》》打印猜小了,并且将玩家输入的数字做为最小值
3.输入的数字小于随机生成的数字    -》》》打印猜大了,并且将玩家输入的数字做为最大值
4.如果玩家在输入的时候超出所给的范围,则打印印输入的数字不在范围内重新输入
代码如下

//猜数字游戏
void game(i)                        //游戏实现
{
	int left = 0;                         //左边的边界值
	int right = 100;                      //右边边的边界值 
	int number = rand() % 100 + 1;        //生成1-100的随机数
	int input_number = 0;
	int i = 0;
    printf("游戏开始 \n");
	printf("请输入需要猜的数字->");     
	scanf("%d", &input_number);            //玩家输入猜的数字
		if (input_number == number)
		{
			system("cls");                 //清屏操作需要头文件windows.h
			printf("猜对了\n");
			break;
		}
//输入的数字在范围且小于随机
		else if (input_number < number && input_number > left && input_number < right)
		{
			printf("猜小了\n");
			left = input_number;
			system("cls");
			printf("随机数范围是是%d到%d\n", left, right);
		}
//输入的数字在范围且大于随机
		else if(input_number > left && input_number < right)  
		{
			printf("猜大了\n");
			right = input_number;
			system("cls");
			printf("随机数范围是是%d到%d\n", left, right); 
		}
		else
		{
			system("cls");
			printf("请在范围内输入数字\n");
			printf("随机数范围是是%d到%d\n", left, right);
		}

}

增加功能

 增加一些惩罚让(例如:电脑关机),和在规定次数内猜到数字,和难度设置,显示剩余次数
def为最大次数,次数越少难度越高,默认次数是10(或是自行设定)
left  最小值用来确定左范围
right最大值有了确定右范围
number 为生成的随机数(需要在主函数配合srand生成器)
使用方法
srand((unsigned int)(time(NULL)));
number=rand()%100+1   //1-100的数  不加1 则为生成0-99的数
i为输入过的次数 每次猜大,猜小 i才会加1 当i=def的时则跳出while循环打印游戏失败

void game(int def)                        //游戏实现
{
	int left = 0;                         //左边的边界值
	int right = 100;                      //右边边的边界值 
	int number = rand() % 100 + 1;        //生成1-100的随机数
	int input_number = 0;
	int i = 0;
    printf("游戏开始 \n");
	while (i<def)
	{
		printf("请输入需要猜的数字->");     
		scanf("%d", &input_number);         //玩家输入猜的数字
		if (input_number == number)
		{
			system("cls");
			printf("猜对了\n");
			break;
		}
//输入的数小于随机数
		else if (input_number < number && input_number > left && input_number < right)
		{
			printf("猜小了\n");
			left = input_number;
			system("cls");
			printf("随机数范围是是%d到%d\n", left, right);
			i++;
			printf("还有%d次机会\n", def - i);
		}
//输入的数大于随机数
		else if(input_number > left && input_number < right)
		{
			printf("猜大了\n");
			right = input_number;
			system("cls");
			printf("随机数范围是是%d到%d\n", left, right); 
			i++;
			printf("还有%d次机会\n", def - i);
		}
		else
		{
			system("cls");
			printf("请在范围内输入数字\n");
			printf("随机数范围是是%d到%d\n", left, right);
		}

	}
	printf("游戏失败\n");                                                       //可自行设置惩罚

}

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值