C语言实现猜数字游戏

本文介绍了如何使用C语言在VS2022中开发一个简单的猜数字游戏,包括设置菜单、生成随机数、接收用户输入并提示大小,以及游戏循环和结束条件。
摘要由CSDN通过智能技术生成

        最近看到了一个挺有趣的代码,在这里分享一下:先输入一个1-100的数字,然后程序会打印这个数字与生成的随机数相比是猜大了还是猜小了,直到猜出数字或者猜完五次机会为止。

        要如何实现这个代码呢?步骤大致可以分为两个:

        1.系统生成随机数;

        2.键盘输入数字,系统提示大或小

        接下来会在VS2022上以C语言代码的形式来实现这一效果

一、设置菜单目录

        作为一个游戏,一个浅显易懂的菜单目录是必不可少的,大致将菜单分为两个功能,1是开始猜数字游戏,2是退出游戏;

        以函数的形式创建菜单menu使主体main()函数代码不会显得太臃肿;

void menu()
{
	printf("********************\n");
	printf("***** 1.猜数字 *****\n");
	printf("***** 0.退出 *******\n");
	printf("********************\n");
}

        

二、建立代码整体框架

        在开始编写游戏内容时,可以建立一个大概的游戏主题框架,即菜单的功能,使思路一直清晰明了;

int main() 
{
	int input = 0;
	srand((unsigned int)time(NULL));  //以时间戳的形式,为随机数rand添加种子
	do   //使函数在最初运行时直接运行,使用do...while循环
	{
		menu();  //引用菜单函数
		printf("请选择\n");
		scanf("%d", &input);  //输入数字input
		switch(input)
		{
		case 0:
			printf("退出猜数字\n");
			break;
		case 1:
			game();  //引用游戏主体函数
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);  //若input为0则结束循环,若为非0则回到switch(input)继续循环
	

	return 0;
}

三、创建猜数字游戏主体函数

        以函数的形式编写猜数字游戏主体程序,整体流程分为,先用rand函数生成一个随机数,再通过scanf函数输入一个数字开始猜数字;

void game()
{
	int count = 5;
	int guess = 0;
	printf("输入一位1-100数字\n");
	int Num = rand() % 100 + 1; //生成一个1-100随机数
	while (count)  //当count为0时退出循环
	{
		scanf("%d", &guess); 
		if (guess > Num)   //判断大小
		{
			printf("猜大了\n");
		}
		else if (guess < Num)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
		count--;
		if (count <= 5 && count !=0)
			printf("你还有%d次机会\n",count);
		else
		printf("5次机会用完,你以失败,正确数字为%d\n",Num);
	}
}

四、猜数字游戏整体实现效果

        整体代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
#include<math.h>
//猜数字
//1.随机生成一个1-100的数字
//2.键盘输入数字,系统提示大或小
void menu()
{
	printf("********************\n");
	printf("***** 1.猜数字 *****\n");
	printf("***** 0.退出 *******\n");
	printf("********************\n");
}

void game()
{
	int count = 5;
	int guess = 0;
	printf("输入一位1-100数字\n");
	int Num = rand() % 100 + 1; //生成一个1-100随机数
	while (count)  //当count为0时退出循环
	{
		scanf("%d", &guess); 
		if (guess > Num)   //判断大小
		{
			printf("猜大了\n");
		}
		else if (guess < Num)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
		count--;
		if (count <= 5 && count !=0)
			printf("你还有%d次机会\n",count);
		else
		printf("5次机会用完,你以失败,正确数字为%d\n",Num);
	}
}

int main() 
{
	int input = 0;
	srand((unsigned int)time(NULL));  //以时间戳的形式,为随机数rand添加种子
	do   //使函数在最初运行时直接运行,使用do...while循环
	{
		menu();
		printf("请选择\n");
		scanf("%d", &input);  //输入数字input
		switch(input)
		{
		case 0:
			printf("退出猜数字\n");
			break;
		case 1:
			game();
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);  //若input为0则结束循环,若为非0则回到switch(input)继续循环
	

	return 0;
}

实施效果如图所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值