C语言实现猜数字小游戏的示例代码

 更新时间:2022年08月22日 11:33:53   作者:编程爱好者-阿新  
猜数字小游戏是我们小时候喜欢我们一个经典小游戏。本文将用C语言实现这一经典游戏,文中的示例代码讲解详细,感兴趣的可以了解一下

一、猜数字小游戏的要求

猜数字小游戏是我们小时候喜欢我们一个经典小游戏,在本文中,猜数字小游戏主要的功能如下所示

1.登入猜数字小游戏系统,显示小时欢迎界面。

2.用户猜的数字有系统随机在1-20之间生成。

3.用户可以有5次机会猜这个随机生成的数字。

4.若用户猜大了,则系统会显示猜大了,并提示还有多少猜数字的机会。

5.若5次都没有猜中系统随机生成的数字,则游戏结束。

二、猜数字小游戏实现的过程

2.1项目创建

使用VS2019创建一个名为GuessNumber的C语言项目,并在GuessNumber项目中创建Main.c源文件和Main.h头文件。

2.2头文件内容

在Main.h头文件中,将有关的头文件包含进来,如下所示

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

在声明两个函数,如下所示

// 显示菜单
void menu();

// 猜数字游戏功能
void gameGuess();

其中,menu函数的功能是显示猜数字小游戏的初始化界面,并提供猜数字小游戏的相关说明。gameGuess函数的功能是整个猜数字游戏的核心,在gameGuess中主要是实现用户猜数字的功能,并且给用户提供友好的提示功能。

2.3源文件内容

首先将头文件包含进来

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

其中#define _CRT_SECURE_NO_WARNINGS是为了使编译器没有警告。

main函数中添加代码如下

	system("color 3E");

	int select = 0;

	//防止出现的随机数一样
	srand((unsigned int)time(NULL));

	//利用循环实现可以多次玩
	do
	{
		menu();

		printf("请输入选项:");
		scanf("%d", &select);

		switch (select)
		{
		case 1:
			gameGuess();
			break;
		case 0:
			break;
		default:
			printf("选择错误\n");
			system("pause");
			system("cls");
			break;
		}

	} while (select);

	printf("欢迎下次使用,再见!!!\n");

	system("pause");
	return 0;

首先定义select 变量,根据用户输入的值,给变量select 赋值,从而进入相应的函数,进而实现相关的功能。

srand是为了防止出现的随机数一样。

根据输入的select值,进入switch 分支语句进行判断。

menu函数如下

// 显示菜单
void menu()
{
	printf("**********************************************************\n");
	printf("*			欢迎来到猜数字小游戏\n");
	printf("*			规则说明\n");
	printf("*			猜的数字为1-20\n");
	printf("*			共有5次机会\n");
	printf("*			欢迎猜中数字哦!!!\n\n");

	printf("*			1.开始游戏\n");
	printf("*			0.退出游戏\n");
	printf("**********************************************************\n\n");
}

其主要的功能是显示系统的菜单功能,给用户提示猜数字小游戏应该如何进行。

gameGuess函数如下

//猜数字游戏功能函数
void gameGuess()
{
	int num = 0, input = 0, count = 0;

	num = rand() % 20 + 1;//获取1-100的一个随机数

	while (count != 5)//利用if循环判断
	{
		printf("请输入数字:");
		scanf("%d", &input);

		if (input == num)
		{
			printf("恭喜啦,你猜的数字是对的!!!\n");
			break;
		}
		else if (input < num)
		{
			printf("你猜小了\n");
		}
		else
		{
			printf("你猜大了\n");
		}

		count++;
		if (count == 5)
		{
			printf("很遗憾,5次机会用完了,你没有猜对!!!\n\n");
			printf("正确答案是:%d\n", num);
			break;
		}
		printf("你还有:%d次机会\n\n", 5 - count);
	}

	system("pause");
	system("cls");
}

使用系统库函数rand随机生成一个1-20的数字,赋值给变量num ,然后根据输入的变量input值是否相等使用 == 进行判断。

count主要用于判断用户还有多少次猜数字的机会。

三、猜数字小游戏调试结果如下

1.进入系统,输入数字1

2.猜对的调试结果

3.没有猜对的调试结果

四、基于猜数字小游戏的总结

本文的猜数字小游戏让我们对于C语言的入门可以得到有效的提高,对于srand函数、rand函数,Switch语句、while循环、if条件判据等C语言知识点可以进一步的掌握。

五、完整代码

Main.h头文件

#pragma once

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

// 显示菜单
void menu();

// 猜数字游戏功能
void gameGuess();

Main.c源文件

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

int main()
{
	system("color 3E");

	int select = 0;

	//防止出现的随机数一样
	srand((unsigned int)time(NULL));

	//利用循环实现可以多次玩
	do
	{
		menu();

		printf("请输入选项:");
		scanf("%d", &select);

		switch (select)
		{
		case 1:
			gameGuess();
			break;
		case 0:
			break;
		default:
			printf("选择错误\n");
			system("pause");
			system("cls");
			break;
		}

	} while (select);

	printf("欢迎下次使用,再见!!!\n");

	system("pause");
	return 0;
}

// 显示菜单
void menu()
{
	printf("**********************************************************\n");
	printf("*			欢迎来到猜数字小游戏\n");
	printf("*			规则说明\n");
	printf("*			猜的数字为1-20\n");
	printf("*			共有5次机会\n");
	printf("*			欢迎猜中数字哦!!!\n\n");

	printf("*			1.开始游戏\n");
	printf("*			0.退出游戏\n");
	printf("**********************************************************\n\n");
}

//猜数字游戏功能函数
void gameGuess()
{
	int num = 0, input = 0, count = 0;

	num = rand() % 20 + 1;//获取1-100的一个随机数

	while (count != 5)//利用if循环判断
	{
		printf("请输入数字:");
		scanf("%d", &input);

		if (input == num)
		{
			printf("恭喜啦,你猜的数字是对的!!!\n");
			break;
		}
		else if (input < num)
		{
			printf("你猜小了\n");
		}
		else
		{
			printf("你猜大了\n");
		}

		count++;
		if (count == 5)
		{
			printf("很遗憾,5次机会用完了,你没有猜对!!!\n\n");
			printf("正确答案是:%d\n", num);
			break;
		}
		printf("你还有:%d次机会\n\n", 5 - count);
	}

	system("pause");
	system("cls");
}

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

相关文章

  • C++ STL标准库std::vector扩容时进行深复制原因详解

    C++ STL标准库std::vector扩容时进行深复制原因详解

    我们知道,std::vector之所以可以动态扩容,同时还可以保持顺序存储,主要取决于其扩容复制的机制。当容量满时,会重新划分一片更大的内存区域,然后将所有的元素拷贝过去
    2022-08-08
  • 介绍C语言程序中的注释等辅助语句如何使用

    介绍C语言程序中的注释等辅助语句如何使用

    C语言中分为单行注释和多行注释:单行注释 以 // 开始的这一行文本,可能不被编译器所支持;多行注释从 /* 到 */之间的所有文本,不支持嵌套,下面让我们详细来了解
    2022-04-04
  • 区分C++中的&和&&

    区分C++中的&和&&

    这篇文章主要介绍了如何区分C++的&和&&,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2020-09-09
  • C++并查集常用操作

    C++并查集常用操作

    并查集 是一种树型的数据结构,用于处理一些不相加集合的合并和查询问题。本文给大家分享C++并查集常用操作及算法实现,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • C++11中std::packaged_task的使用详解

    C++11中std::packaged_task的使用详解

    这篇文章主要介绍了C++11中std::packaged_task的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 深入理解goto语句的替代实现方式分析

    深入理解goto语句的替代实现方式分析

    本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程

    记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程

    这篇文章主要介绍了记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java C++ 算法题解leetcode1582二进制矩阵特殊位置

    Java C++ 算法题解leetcode1582二进制矩阵特殊位置

    这篇文章主要为大家介绍了Java C++ 算法题解leetcode1582二进制矩阵特殊位置示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C语言入门之基础知识详解

    C语言入门之基础知识详解

    这篇文章主要介绍了C语言入门之基础知识详解,文中有非常详细的C语言使用教程及相关基础知识,对正在学习c语言的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • C语言进阶:指针的进阶(5)

    C语言进阶:指针的进阶(5)

    这篇文章主要介绍了C语言指针详解及用法示例,介绍了其相关概念,然后分享了几种用法,具有一定参考价值。需要的朋友可以了解下
    2021-09-09

最新评论