C语言详解实现猜数字游戏步骤

 更新时间:2022年07月08日 09:49:14   作者:hania_w  
猜数字是兴起于英国的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。游戏规则为一方出数字,一方猜,今天我们来实现这个游戏案例

前言

本文详细介绍了猜数字游戏的具体实现逻辑

一、猜数字游戏是什么

1、电脑自动生成一个1-100以内的数字

2、我们输入一个我们猜的数字

3、如果我们猜的数字比电脑随机生成的数字大,那么输出(猜大了)

4、如果我们猜的数字比电脑随机生成的数字小,那么输出(猜小了)

5、如此循环往复,猜到正确的数字之后游戏结束

二、使用步骤

  • 1.首先应该打印菜单

代码如下

void menu()
{
	printf("*********************\n");
	printf("***** 1. play *******\n");
	printf("***** 0. exit *******\n");
	printf("*********************\n");
}
int main()
{
	menu();
	printf("请选择:>");
	int input = 0;
	while (input)
	{
		switch (input)
		{
		case 1:
	        printf("游戏开始");
	        game()//选择开始游戏之后,进入我们玩游戏的一个逻辑
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("输入错误,请重新输入!");
			break;
		}
	}
	return 0;
}

选择1,开始游戏

选择0,游戏结束

  • 2.打印我们的game()函数来实现我们的游戏具体逻辑

代码如下:

void game()
{
	int guess = 0;
	int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字
	while (1)//因为猜数字是一个多次的过程,因此需要一个循坏来解决
	{
		printf("请输入你猜的数字:>");
		scanf("%d", &guess);
		//将我们猜的数字与电脑随机生的数字作对比
		if (guess < ret)
		{
		//如果我们猜的数字比电脑的数字要小,输出猜小了
			printf("猜小了!\n");
		}
		else if (guess > ret)
		{
		//如果我们猜的数字比电脑的数字要大,输出猜大了
			printf("猜大了!\n");
		}
		else
		{
		//数字猜对了,输出猜对了
			printf("猜对了!\n");
			break;
		}
	}
}

注:

如果使用rand()函数,必须先调用srand()函数,再使用时间戳来形成一个随机数字。

我们调用时间戳,因此需要包含头文件#include<time.h>

【时间戳】的概念:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

因此我们的main()函数部分就变成了如下代码所示:

int main()
{
	menu();
	printf("请选择:>");
	int input = 0;
	int n = 0;
	scanf("%d", &input);
	srand((unsigned int)time(NULL));
	//使用srand函数,接着使用时间戳,形成一个无符号整数
	//我们调用时间戳,因此需要包含头文件#include<time.h>
	while (input)
	{
		switch (input)
		{
		case 1:
			game();//猜数字游戏的的逻辑
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("输入错误,请重新输入!");
			break;
		}
	}
	return 0;
}

总结

本文的重点是对于时间戳的理解,以及猜数字游戏的逻辑

下面是【猜数字游戏】的全部代码

猜数字游戏1-100
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void game()
{
	int guess = 0;
	int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字
	//printf("%d",ret);
	while (1)
	{
		printf("请输入你猜的数字:>");
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("猜小了!\n");
		}
		else if (guess > ret)
		{
			printf("猜大了!\n");
		}
		else
		{
			printf("猜对了!\n");
			break;
		}
	}
}
void menu()
{
	printf("*********************\n");
	printf("***** 1. play *******\n");
	printf("***** 0. exit *******\n");
	printf("*********************\n");
}
int main()
{
	menu();
	printf("请选择:>");
	int input = 0;
	int n = 0;
	scanf("%d", &input);
	srand((unsigned int)time(NULL));
	while (input)
	{
		switch (input)
		{
		case 1:
			game();//猜数字的逻辑
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("输入错误,请重新输入!");
			break;
		}
	}
	return 0;
}

到此这篇关于C语言详解实现猜数字游戏步骤的文章就介绍到这了,更多相关C语言猜数字游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ 学习之旅二 说一说C++头文件

    C++ 学习之旅二 说一说C++头文件

    作为一个二手的.net程序员,你看到了C++头文件一定就犯迷糊了,这到底是个啥玩意。再我纠结了24个小时, google20次,度娘10下,看过10来骗文章以后,我可能稍微开窍了。我对C++头文件总结,与.net比较如下
    2012-11-11
  • C++中构造函数重载

    C++中构造函数重载

    这篇文章主要介绍了C++中构造函数重载的相关资料,十分的详细,需要的朋友可以参考下
    2015-06-06
  • C++中的HTTP协议问题

    C++中的HTTP协议问题

    这篇文章主要介绍了C++中的HTTP协议问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Linux C 获取进程退出值的实现代码

    Linux C 获取进程退出值的实现代码

    本篇文章是对在Linux下使用c语言获取进程退出值的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C/C++实现矩阵的转置(示例代码)

    C/C++实现矩阵的转置(示例代码)

    C/C++实现矩阵的转置(示例代码)需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • C++中对C语言结构体用法的扩充

    C++中对C语言结构体用法的扩充

    今天小编就为大家分享一篇关于C++中对C语言结构体用法的扩充,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++线程中几类锁的详解

    C++线程中几类锁的详解

    这篇文章主要为大家介绍了C++线程中几类锁,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • C++中虚函数与纯虚函数的用法

    C++中虚函数与纯虚函数的用法

    这篇文章主要介绍了C++中虚函数与纯虚函数的用法,是非常重要的概念,需要的朋友可以参考下
    2014-08-08
  • 深入解析C++程序中激发事件和COM中的事件处理

    深入解析C++程序中激发事件和COM中的事件处理

    这篇文章主要介绍了深入解析C++程序中激发事件和COM中的事件处理,是C++事件操作的基础,需要的朋友可以参考下
    2016-01-01
  • C++访问std::variant类型数据的几种方式小结

    C++访问std::variant类型数据的几种方式小结

    std::variant是 C++17中引入的一个新的类模板,提供了一种存储不同类型的值的方式,本文主要介绍了C++访问std::variant类型数据的几种方式小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论