教你如何用C语言设计一个有趣的猜数字小游戏

前言

好久不见,今天我要跟大家分享一个C语言猜数字小游戏,无聊的时候玩一玩这种小游戏,怡怡情,给自己的生活整天一点乐趣,哈哈~
话不多说,开干
在这里插入图片描述

猜数字游戏

打印菜单

一个游戏嘛,首先我们得打印一个菜单让玩家看到菜单栏,可以提供选择,代码如下:

void menu()
{
	printf("********************************\n");
	printf("*******欢迎来到猜数字游戏********\n");
	printf("************请选择>:************\n");
	printf("******1.play        0.exit******\n");
	printf("********************************\n");	
}

用户输入1就是开始游戏,输入0就是退出游戏。
效果如下:
在这里插入图片描述

处理玩家选择的操作

根据玩家的选择,我们要对他们的玩家进行相应的处理,提供给玩家想要执行的操作,这就要用到一个选择语句,看代码:

//初始化用户输入值
		int input = 0;
		//接受用户输入值
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			三子棋游戏(一些代码)
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}

这个游戏让玩家只玩一把多不好,万一玩家觉得不过瘾,得让他们多玩几把呀,为了满足广大游戏玩家的需求,我们得让这个有游戏一直可以玩下去,直到玩家知己不想玩退出为止,这就要用到循环语句,我们先看看实际是如何操作的:

//初始化用户输入值
	int input = 0;
	do
	{
		//打印游戏菜单
		menu();
		//接受用户输入值
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			三子棋游戏(一些代码)
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);

根据玩家的选择,玩家如果输入1,那么游戏将一直可以玩下去,输入0则跳出循环,终止游戏。

编写猜数字游戏函数

用户选择1,则进入游戏,我们得正式开始编写一个游戏函数。

游戏中要猜数字从哪来?(配置随机数生成器)

猜数字游戏,数字从何而来,这是一个值得我们思考的问题。仔细思考,想到了库函数里面有一个随机数生成函数rand

Returns a pseudo-random integral number in the range between 0 and RAND_MAX.
This number is generated by an algorithm that returns a sequence of apparently non-related >numbers each time it is called. This algorithm uses a seed to generate the series, which should >be initialized to some distinctive value using function srand.

这是我摘录rand函数的介绍内容。这个函数可以生成0-RAND_MAX的随机数,使用之前要初始化随机数生成器srand,否则会导致每次打开程序生成的随机数与上次一样,这就会让玩家很没有体验感。所以我们先来看一下srand函数:

void srand (unsigned int seed);

函数返回类型是void,形参是unsigned int类型的,seed这个变量也要是随机数,这就麻烦了,本来我们就是要配置随机数生成器,然后又有找一个随机数,这就麻烦了,这随机数上哪找呀,能不能找到一个随时都在变的数呢?

时间戳

时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。 Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。(来源:百度百科
回到srand函数,我们发现:

In order to generate random-like numbers, srand is usually initialized to some distinctive runtime value, like the value returned by function time (declared in header ). This is distinctive enough for most trivial randomization needs.

时间是在不断变化的,这样我们就获取这样一个随机数,那这个问题就解决了
这里有一个time函数,可以获取当前日历时间,该由于函数返回类型是long long,srand函数要随机值,就得将time返回值强制类型转换一下,所以初始化随机数生成器如下:

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

配置好随机数生成器我们就要开始使用了。

开始生成随机数

生成1-100的随机数就可以这样写了:

//生成1~100的随机数
	int rand_num = rand() % 100 + 1;

game函数内部编写

根据上述条件,我们可以开始编写一个game函数了,如下:

void game()
{
	//生成1~100的随机数
	int rand_num = rand() % 100 + 1;
	//初始化玩家输入数字
	int chess_num = 0;
	//记录猜数字猜的次数
	int count = 0;
	//猜数字游戏
	while (1)
	{
		printf("请输入猜的数字的大小(1-100)>:\n");
		scanf("%d", &chess_num);
		count++;
		if (chess_num > rand_num)
		{
			printf("猜大了\n");
		}
		else if (chess_num < rand_num)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了\n");
			print_score(count);
			break;
		}		
	}
}

每猜一次,系统都会提示猜到了小了,直到猜对了为止。
根据猜的次数的多少,我们可以给一个评价,如下:

void print_score(int count)
{
	if (1 == count)
	{
		printf("猜数字小达人\n");
	}
	else if (count >= 2 && count <= 4)
	{
		printf("相当不错,就被你猜到了\n");
	}
	else if (count >= 5 && count <= 8)
	{
		printf("水平一般般,不行呀\n");
	}
	else
	{
		printf("没有发挥你的全部实力,运气有点差,再来一局吧\n");
	}
}

完整代码

根据分析,我们就可以把这样一个游戏编写完了。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
//猜数字小游戏
void print_score(int count)
{
	if (1 == count)
	{
		printf("猜数字小达人\n");
	}
	else if (count >= 2 && count <= 4)
	{
		printf("相当不错,就被你猜到了\n");
	}
	else if (count >= 5 && count <= 8)
	{
		printf("水平一般般,不行呀\n");
	}
	else
	{
		printf("没有发挥你的全部实力,运气有点差,再来一局吧\n");
	}
}
void menu()
{
	printf("********************************\n");
	printf("*******欢迎来到猜数字游戏*******\n");
	printf("************请选择>:************\n");
	printf("******1.play        0.exit******\n");
	printf("********************************\n");	
}
void game()
{
	//生成1~100的随机数
	int rand_num = rand() % 100 + 1;
	//初始化玩家输入数字
	int chess_num = 0;
	//记录猜数字猜的次数
	int count = 0;
	//猜数字游戏
	while (1)
	{
		printf("请输入猜的数字的大小(1-100)>:\n");
		scanf("%d", &chess_num);
		count++;
		if (chess_num > rand_num)
		{
			printf("猜大了\n");
		}
		else if (chess_num < rand_num)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了\n");
			print_score(count);
			break;
		}		
	}
}
int main()
{
	//初始化随机数生成器
	srand((unsigned int)time(NULL));
	//初始化用户输入值
	int input = 0;
	do
	{
		//打印游戏菜单
		menu();
		//接受用户输入值
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			Sleep(1000);
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input);
	return 0;
}

总结

今天这个小游戏主要用到了选择语句和循环语句,以及一些简单的函数编写,其中还提到了随机函数如何传产生的,讲到这里,大家的是不是想要赶快尝试一下,去吧,留下你的评论和小赞一枚,哈哈~

感谢感谢今天的分享就到这里了,感谢大家的点赞支持与指正~
在这里插入图片描述

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 这是一个比较通用的方法来编写一个小游戏用 C 语言: 1. 首先,确定游戏的目标和规则。这可能包括游戏的玩法、胜负条件、游戏元素和游戏流程等。 2. 其次,确定游戏的用户界面。这可能包括游戏的菜单、按钮、文本框、图像和其他元素,以及如何显示这些元素并响应用户输入。 3. 然后,设计游戏的数据结构和算法。这可能包括游戏状态、游戏元素的位置和状态、分数和其他游戏变量,以及如何更新这些变量并实现游戏规则。 4. 最后,实现游戏的代码。这可能包括初始化游戏、绘制游戏界面、更新游戏状态、处理用户输入、结束游戏等。 注意:这只是一个大致的指导方针,实际的游戏开发过程可能会有所不同。 ### 回答2: 我使用C语言编写了一个经典的文本冒险小游戏。游戏的基本思路是玩家需要在一个虚拟的迷宫中探索并寻找出口。 游戏开始时,玩家将在迷宫的入口处开始。玩家可以通过输入命令来控制角色的移动,例如"w"表示向上移动,"s"表示向下移动,"a"表示向左移动,"d"表示向右移动。玩家还可以输入"exit"命令来退出游戏。 迷宫的地图是一个二维数组,其中不同的字符表示不同的地形,例如"#"表示墙壁,"."表示通道。玩家只能穿过通道,不能穿过墙壁。玩家每移动一步,游戏就会更新地图并显示新的位置。 玩家需要通过探索每一个房间来找到通往下一个房间的出口。在某些房间中,玩家可能会遇到一些障碍物或陷阱,这些会耗费玩家的生命值。当玩家耗尽生命值时,游戏结束。 为了增加游戏的乐趣和挑战,我还添加了一些额外的功能。例如,玩家可以遇到一些隐藏的宝物,收集宝物可以得到额外的积分。另外,玩家还可以在特定地点使用道具,例如增加生命值或暂停敌人的移动。 整个游戏的开发过程涉及许多C语言编程的基本概念,例如循环结构、条件语句、函数等。通过编写这个小游戏,我巩固了自己对C语言的理解,并提高了自己的编程能力。 总而言之,使用C语言编写小游戏可以锻炼编程技能,提高逻辑思维能力,并为其他更复杂的游戏开发项目打下基础。 ### 回答3: C语言是一种功能强大的编程语言,也可以用来编写简单的小游戏。在编写游戏之前,我们首先需要了解游戏的基本要求和规则。下面是一个C语言编写的猜数字小游戏的示例: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int answer, guess, attempts; attempts = 0; // 生成随机数作为答案 srand(time(0)); answer = rand() % 100 + 1; printf("欢迎来到猜数字游戏!\n"); do { printf("请输入一个1到100之间的整数:"); scanf("%d", &guess); attempts++; if (guess > answer) { printf("猜错了,太大了!请再试一次。\n"); } else if (guess < answer) { printf("猜错了,太小了!请再试一次。\n"); } else { printf("恭喜你猜对了!答案是 %d。\n", answer); printf("你用了 %d 次尝试。\n", attempts); } } while (guess != answer); return 0; } ``` 在这个小游戏中,程序会生成一个1到100之间的随机数作为答案,然后玩家需要输入一个整数进行猜测。程序会根据猜测的结果给出相应的提示,直到玩家猜对为止。游戏结束时,程序会显示玩家猜对的次数。 这只是一个简单的示例,实际上可以用C语言实现更复杂的游戏。通过使用条件语句、循环和随机数等基本的编程概念,开发者可以创作出各种有趣的游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆兽学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值