当前位置: 首页 > news >正文

C语言---猜数字游戏

猜数字游戏代码

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

void meun()
{
	printf("**********************\n");
	printf("******* 1.play *******\n");
	printf("******* 0.quit *******\n");
	printf("**********************\n");
}

void game()
{
	int rand_number = rand() % 100 + 1;//随机数的范围是1~100
	int input2 = 0;
	int right = 100;//最大是100
	int left = 1;//最小是1
	int count = 5;//猜数字机会
	printf("猜数字游戏开始\n开始猜数字\n");
	while (count)
	{
		printf("请输入:");
		scanf("%d", &input2);

		if (input2 > rand_number)
		{ 
			count--;
			right = input2;
			printf("猜大了,范围是 %d--%d\n",left,right);
			printf("你还有%d机会\n", count);
		}

		if (input2 < rand_number)
		{
			count--;
			left = input2;
			printf("猜小了,范围是 %d--%d\n", left, right);
			printf("你还有%d机会\n", count);
		}

		if (input2 == rand_number)
		{
			printf("恭喜你猜对了\n");
			break;
		}
	}
	if (count == 0)
	{
		printf("游戏失败\n");
		printf("要猜的数字是%d", rand_number);
	}
}

int main()
{
	srand((unsigned int)time(NULL));
	meun();

regain:
	printf("请选择:");
	int input1 = 0;
	scanf("%d", &input1);
	switch (input1)
	{
	case 1:
	{
		printf("进入游戏\n");
		game();
		break;	
	}
	case 0:
	{
		printf("退出游戏\n");
		break;
	}
	default:
	{
		printf("输入错误,请重新输入\n");
		goto regain;
	}
	}
	return 0;
}

猜数字游戏思路

1.菜单
2.玩游戏还是退出游戏
3.游戏–设置随机数
4.猜数字

1.菜单

void meun()
{
	printf("**********************\n");
	printf("******* 1.play *******\n");
	printf("******* 0.quit *******\n");
	printf("**********************\n");
}

提示玩家输入1表示玩游戏,输入0表示退出游戏

2.玩游戏还是退出游戏

运用 switch语句实现

regain:
	printf("请选择:");
	int input1 = 0;
	scanf("%d", &input1);
	switch (input1)
	{
	case 1:
	{
		printf("进入游戏\n");
		game();
		break;	
	}
	case 0:
	{
		printf("退出游戏\n");
		break;
	}
	default:
	{
		printf("输入错误,请重新输入\n");
		goto regain;
	}
	}

input1 = 1进入游戏
input = 0退出游戏
input1等于其他数字时提示输入错误,重新输入
重新输入用goto语句实现,在上面这个代码中,会跳到regain这里

3.游戏–设置随机数

使用rand()函数设置随机数,为确保每次运行程序时生成的随机数序列不同,通常需要使用srand()函数来设置随机数种子
srand()函数使用time(NULL)作为种子,意味着随机数种子会根据当前时间变化,从而使得每次运行程序生成的随机数序列不同

rand() srand()的头文件是stdlib.h
time()的头文件是time.h

1 srand((unsigned int)time(NULL));

2 int rand_number = rand() % 100 + 1;//随机数的范围是1~100

4.猜数字

判断输入的数与随机数那个大,输入的数比较大就输出猜大了,输入的数比较小就输出猜小了,相等就输出猜对了,并且停止循环(运用break

void game()
{
	int rand_number = rand() % 100 + 1;//随机数的范围是1~100
	printf("猜数字游戏开始\n开始猜数字\n");
	while (1)
	{
		printf("请输入:");
		scanf("%d", &input2);

		if (input2 > rand_number)
		{ 
			printf("猜大了\n");
		}

		if (input2 < rand_number)
		{
			printf("猜小了"\n);
		}

		if (input2 == rand_number)
		{
			printf("恭喜你猜对了\n");
			break;
		}
	}
}

到这猜数字的基本思路就完成了

当然还可以改进,比如显示范围,多少次机会等等

left = 1 right = 100表示随机数的范围是1~100
count = 5表示有五次猜数字的机会

假设输入的input2 = 45,如果猜大了,让right = input2范围就变成了left -- right1 -- 45;如果猜小了,让left = input2 范围就变成了left -- right45 -- 100

每次猜完机会减一,即count--,当count == 0时,机会为0,游戏结束

void game()
{
	int rand_number = rand() % 100 + 1;//随机数的范围是1~100
	int input2 = 0;
	int right = 100;//最大是100
	int left = 1;//最小是1
	int count = 5;//猜数字机会
	printf("猜数字游戏开始\n开始猜数字\n");
	while (count)
	{
		printf("请输入:");
		scanf("%d", &input2);

		if (input2 > rand_number)
		{ 
			count--;
			right = input2;
			printf("猜大了,范围是 %d--%d\n",left,right);
			printf("你还有%d机会\n", count);
		}

		if (input2 < rand_number)
		{
			count--;
			left = input2;
			printf("猜小了,范围是 %d--%d\n", left, right);
			printf("你还有%d机会\n", count);
		}

		if (input2 == rand_number)
		{
			printf("恭喜你猜对了\n");
			break;
		}
	}
	if (count == 0)
	{
		printf("游戏失败\n");
		printf("要猜的数字是%d", rand_number);
	}
}

相关文章:

  • Python Web应用开发之Flask框架——基础
  • 【第12节】C++设计模式(结构型模式)-Proxy(代理)模式
  • 第二章、python常用数据结构(2.3.1-2.4)------容器类型与容器类型的关系、数据类型与数据结构的关系
  • 3d投影到2d python opencv
  • 学习路程十三 结合之前所学进行 检索增强生成 实战
  • vuex中的state是响应式的吗?
  • 【每日论文】How far can we go with ImageNet for Text-to-Image generation?
  • 深度学习---卷积神经网络
  • 解锁Egg.js:从Node.js小白到Web开发高手的进阶之路
  • Vite:现代前端构建工具的新选择
  • 深入解析 MySQL 中的时间函数:NOW() 与 SYSDATE() 的奥秘
  • FPGA 配置原理
  • 计算机毕业设计SpringBoot+Vue.js工作流程管理系统(源码+文档+PPT+讲解)
  • 【大模型基础_毛玉仁】0.概述
  • 解决 uView-UI和uv-ui 中 u-tabs 组件在微信小程序中出现横向滚动条的问题
  • 【机器学习】逻辑回归
  • 前缀和算法
  • 【车规芯片】如何引导时钟树生长方向
  • 【STM32】玩转IIC之驱动MPU6050及姿态解算
  • c语言笔记 指针篇(上)
  • 国外做糖网站/百度指数分析工具
  • 网站建设的报告/网站优化怎么操作
  • o2o网站建设好么/数据分析一般用什么软件
  • 网站地图 模板/长春网长春关键词排名站设计
  • 用别人备案域名做违法网站/最近一周的重大新闻
  • 张家界疫情最新消息今天封城了/台州百度推广优化