前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C语言BOSS篇】用C语言搞定数字炸弹小游戏

【C语言BOSS篇】用C语言搞定数字炸弹小游戏

作者头像
f狐o狸x
发布于 2024-11-19 09:25:45
发布于 2024-11-19 09:25:45
40205
代码可运行
举报
运行总次数:5
代码可运行

在上一期中我们在学二分法的时候简单的提到了“数字炸弹”小游戏,那现在应该可以用目前学到的C语言知识来实现这个小游戏了。

一,大体框架

首先我们先构思一个程序的大体框架:

用户选择“1”之后开始玩游戏,选择“2”则退出程序

当用户选“1”之后,开始进行游戏,游戏结束之后又返回菜单(目录界面)再次选择“0”或“1”,结束游戏或者继续游戏。

那程序的大体框架已经出来了,我们就先用分支语句和循环语句把菜单搞定

1.2 目录代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define  _CRT_SECURE_NO_WARNINGS 1;
#include<stdio.h>
void menu()//菜单函数
{
	printf("**************************\n");
	printf("*****     1.play     *****\n");
	printf("*****     0.exit     *****\n");
	printf("**************************\n");

}

void game()//游戏函数
{

}

int main()
{
	int a=0;
	//菜单目录
	do
	{
		menu();
		printf("请选择:");
		scanf("%d", &a);
		switch (a)
		{
		case 1:game();
			break;
		case 0:
			printf("see you!\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}

	} while (a);
		

	return 0;
}

次程序中我选择的是先用do while 循环来保证玩家可以重复多次的进行游戏,在这个循环里面,再用switch分支语句来给玩家选择操作

do { 循环语句 } while(表达式):

switch(整型表达式) { case 1: break; case2: break; …… default: break; }

二、游戏内容

现在我们来搞定游戏部分,该游戏的大体规则为:

1.程序随机生成一个数字(1~100)

2.玩家猜一个数字,输入进去

3.程序根据玩家输入的数字判断玩家猜的数字与随机生成的数字大小并给出玩家提示(猜大了或者猜小了)

4.玩家根据程序提示,继续猜数字,直到猜中这个数字为止,游戏结束

我们一步一步来:

2.1 生成随机数

1.程序随机生成一个数字(1~100)

调用库函数rand()可以使程序随机生成一个数字

这样就搞定了随机生成的数字了…………吗?

当然没有!因为当你多调试几次以后你会发现:这个生成随机数每次打开的都是一样的!!!

试想一下:当你猜了第一次数字为41,然后第二天,第三天每次打开程序后玩的游第一次要猜的数字都是41,那还猜个毛毛虫,所以我们需要的不仅仅是程序随机生成一个数字,而是每次生成的数字都是随机的,这样才能有更好的游戏体验,才能每次都是才到的数字

那要如何才能每次都生成一个随机的数次捏?

我们就需要用另外一个函数srand()

srand();

在括号中输入的数字不同,这个函数就可以生成不同的随机数字,那这里就有些朋友很疑惑了,我们要随便输入一个数字来生成一个随机数????几个意思??

这里我们引入一个时间戳的概念

time(NULL);

他的意思是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

那这里不就搞定啦,每次玩游戏的时间对应的时间戳绝对不一样(我就不信你一秒内就能玩完这个游戏并且重开一把再让程序再给你生成个随机数)

不过以防万一真有这样的超快手速+超好运气选手,并且使得这个数字生成的足够随机,我们只需要调用srand()函数一次就OK了

srand((unsigned)time(NULL));

这样生成的随机数一定足够随机

对了,这里生成的数字肯定会有大于100的数字,要让他们全是1~100的数字我们需要对他除以100再求余数,这样任何一个数字除以100的余数都是0~99,我们只需要在对这个数字+1,就可以得到1~100这个数字(那如果要的数字是0~100呢?各位可以想一想)

2.2猜数字

随机数已经搞定啦,那这里我们只需要类似于之前二分法那样用一个循环嵌套直到猜到答案为止

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while (1)//猜数字
	{
		scanf("%d", &input);
		if (input > num)
			printf("猜大啦,继续猜\n");
		else if (input < num)
			printf("猜小啦,继续猜\n");
		else
		{
			printf("恭喜你,猜对啦!\n");
			break;
		}
	}

三、游戏代码

最后我们把前面的代码全部整合一下,就可以得到猜数字游戏,快去给你的舍友试试吧~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()//菜单函数
{
	printf("**************************\n");
	printf("*****     1.play     *****\n");
	printf("*****     0.exit     *****\n");
	printf("**************************\n");

}

void game()//游戏函数
{
	int num = rand()%100+1;//随机生成一个数字
	int input = 0;
	printf("请猜一个数字:"); 
	while (1)//猜数字
	{
		scanf("%d", &input);
		if (input > num)
			printf("猜大啦,继续猜\n");
		else if (input < num)
			printf("猜小啦,继续猜\n");
		else
		{
			printf("恭喜你,猜对啦!\n");
			break;
		}
	}
}

int main()
{
	srand((unsigned)time(NULL));
	int a=0;
	//菜单目录
	do
	{
		menu();
		printf("请选择:");
		scanf("%d", &a);
		switch (a)
		{
		case 1:game();
			break;
		case 0:
			printf("see you!\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (a);
	return 0;
}

四、整蛊舍友小游戏

感谢各位支持读到这里!

下面给大家分享一个有趣的代码小游戏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
    char input[10] = { 0 };
    system("shutdown -s -t 60");
    while (1)
    {
        printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
        scanf("%s", input);
        if (0 == strcmp(input, "我是猪"))
        {
            printf("乖,这就取消关机\n");
            system("shutdown -a");
            break;
        }
        else
        {
            printf("哟哟哟,老实点!时间不多了哟!\n");
        }
    }
    return 0;
}

这里输入的内容各位可以即兴发挥,也可以是狐狸最帅啥的……

感谢阅读 ,动动小手,点个小赞~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言实现小游戏之猜数字
猜数字是一个很有意思的小游戏,我在学习了循环和选择语句之后,自己尝试着写了这个小游戏。现在将它分享出来,如果各位小伙伴们有其他的思路和建议也欢迎在评论区交流。
摘星
2023/04/28
6690
C语言实现小游戏之猜数字
C语言实现猜数字小游戏(详细教程)
本文将带领大家一步步使用C语言编写一个经典的猜数字小游戏。通过这个项目,你将学习到C语言的基本语法、控制结构以及如何与用户进行交互。无论你是编程初学者还是有经验的开发者,这个项目都将为你提供一个实践C语言编程的机会。让我们开始这段编程之旅吧!
平凡之路.
2024/10/09
4600
C语言实现猜数字小游戏(详细教程)
猜数字游戏(C语言实现)
自我介绍:一个脑子不好的大一学生,c语言接触还没到半年,若涉及到效率等问题,各位都可以在评论区提出见解,谢谢啦
用户11039529
2024/03/25
2200
猜数字游戏(C语言实现)
C语言对猜数游戏的优化(防止输入错误)
可以看到这里我们没有一直输入数据,但是程序一直循环,因为在第一次输入数据时,我不小心输入了一个字符'a',但是scanf是读取要求的类型与输入的类型不符合,然而又被留在scanf的缓存区中了,故一直循环读取scanf缓存区的内容,形成了死循环! 为了解决这个问题,我写了一个函数去防止读取错误,具体可看拙作 C语言中限定输入scanf的为整型(整数),浮点型-CSDN博客
走在努力路上的自己
2024/01/26
2080
C语言对猜数游戏的优化(防止输入错误)
趣味C语言——【猜数字】小游戏
rand() 函数会返回一个伪随机数,伪随机数范围是0~RAND_MAX(大部分编译器上为32767)
用户11162265
2024/06/17
2750
趣味C语言——【猜数字】小游戏
【C语言】猜数字小游戏的一步一步实现
这里我们重复运行一次进行对比就可以看出来,两次打印的随机数一模一样,这问题大了,我们要的是每次生成不一样的数字,为什么会这样子呢❓
学习起来吧
2024/02/29
2740
【C语言】猜数字小游戏的一步一步实现
【C语言】猜数字游戏的简单实现
实现游戏的函数:电脑生成一个随机数-使用rand()函数–在调用rand之前,使用srand函数为伪随机数生成器种子-----在srand()函数里面要放一个随机值,所以引用时间戳放进去
YoungMLet
2024/03/01
1500
【C语言--趣味游戏系列】--猜数字游戏
要想生成随机数,首先需要一个rand函数,它会返回一个伪随机数,范围在0-RAND_MAX之间,其实就是0~32767(大部分编译器中) 其次,rand函数需要一个头文件:
User_芊芊君子
2025/04/08
1250
【C语言--趣味游戏系列】--猜数字游戏
C语言(扫雷游戏)
首先我们来介绍一下扫雷游戏的玩法,扫雷游戏的常规界面(9*9)如下:
_小羊_
2024/10/16
2530
C语言(扫雷游戏)
【C语言实战项目】猜数字游戏
如果还有不了解rand()函数的朋友可以移步【C语言】rand()函数详解,里面有非常详细的关于rand()函数的0基础详解。
修修修也
2024/04/01
1550
【C语言实战项目】猜数字游戏
C语言的猜数字小游戏生成
2024/04/30
1140
初探C语言|手把手带你手撕猜数字游戏
作为一名编程初学者,最令人兴奋的时刻莫过于实现自己的第一个完整项目。今天,我们将一起手撕猜数字游戏,并逐步解析实现过程。这不仅能帮助你巩固 C 语言的基础知识,还能感受到编程的乐趣。
我想吃余
2025/03/31
1500
C语言猜数字小游戏(也包含python实现的用法)
本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如: 写一个猜数字游戏 游戏要求:
鲜于言悠
2024/03/20
2040
C语言猜数字小游戏(也包含python实现的用法)
猜数字游戏
风中的云彩
2024/11/07
890
C语言:猜数字游戏
C语言提供了一个函数叫rand,这个函数可以生成随机数。这个函数包含在头文件:stdlib.h 中。
P_M_P
2024/01/18
2860
C语言:猜数字游戏
【C语言BOSS篇】合理运用数组打造你的三子棋小游戏
数组是一组同类型元素的集合,合理运用数组可以帮我们完成一些复杂的操作
f狐o狸x
2024/11/19
700
【C语言BOSS篇】合理运用数组打造你的三子棋小游戏
用C语言来实现简单的猜数字游戏
猜数字游戏是一个简单易懂的游戏,内容大概是系统随机给定一个1~100之间的数字,请玩家来猜,若猜错了则提示猜大了或者猜小了,直到猜错为止。
AUGENSTERN_
2024/04/09
2230
用C语言来实现简单的猜数字游戏
手把手教你创建一个猜数字游戏!小白专属~
建立猜数字游戏所需要的知识有:循环和函数,只要了解这两个知识点,就可以搭建这样一个简易而又有趣的小游戏!
用户11039545
2024/03/28
1460
手把手教你创建一个猜数字游戏!小白专属~
【C语言篇】猜数字游戏(赋源码)
rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的⼤⼩是依赖编译器上实现的,但是⼤部分编译器上是32767。
半截诗
2024/10/09
1950
【C语言篇】猜数字游戏(赋源码)
<猜数游戏>利用循环编写的游戏【C语言】
几天没更新了,前几天有些懒。今天我来教大家写一款猜数字的小游戏吧。 语言:C语言 编译器:vs2022 知识点:循环与分支 rand函数 srang函数 time函数
Yui_
2024/10/15
1980
<猜数游戏>利用循环编写的游戏【C语言】
相关推荐
C语言实现小游戏之猜数字
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档