返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >如何使用C++实现扫雷游戏
  • 558
分享到

如何使用C++实现扫雷游戏

2023-06-25 16:06:33 558人浏览 泡泡鱼
摘要

这篇文章主要介绍了如何使用c++实现扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏。 不久,“方块”被改写成

这篇文章主要介绍了如何使用c++实现扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏。 不久,“方块”被改写成了游戏“Rlogic”。在“Rlogic”里,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,汤姆·安德森在“Rlogic”的基础上又编写出了游戏“地雷”,由此奠定了现代扫雷游戏的雏形。 1981年,微软公司的罗伯特·杜尔和卡特·约翰逊两位工程师在windows3.1系统上加载了该游戏,扫雷游戏才正式在全世界推广开来。

如何使用C++实现扫雷游戏

这款游戏的玩法是在一个9*9(初级),16*16(中级),16*30(高级),或自定义大小的方块矩阵中随机布置一定量的地雷(初级为10个,中级为40个,高级为99个)。由玩家逐个翻开方块,以找出所有地雷为最终游戏目标。如果玩家翻开的方块有地雷,则游戏结束。

我们今天就来自己写《扫雷》 这个项目并不是很难,今天就和大家从头到尾详细的讲一遍,大家一定要好好看好好学!

行吧,开始了

我们今天用的是Cpp来写,但不是用Windows来创建窗口,而是用他的远房表亲EasyX图形库来创建窗口,因为用图形库会简单很多,刚学C的也可以听懂,而且C/C++不分家,没有什么问题,OK,我们现在开始写代码,今天我就把头文件也分享出来了,主要是教大家如何去调用图形库。(注:没有EasyX图形库的可以去官网下载,也可以进群直接下载) 首先是我们的头文件以及一些宏定义

#include<stdio.h>#include<graphics.h>//包含图形库头文件#define ROW 9 //行#define COL 9 //列  共81个格子#define MINE_NUM  18//雷的数量#define IMG_SIZE 40

初始化函数,也是我们的老朋友了

void GameInit(){//1,创建窗口 一行有九张图片每张图片40px,initgraph(IMG_SIZE*ROW, IMG_SIZE*COL,SHOWCONSOLE);//加载图片(赋值) load加载 第一个参数,存储图片的变量 错误:字符集问题for (int i = 0; i < 12; i++){char file[20] = "";sprintf(file, "./image/%d.jpg", i);loadimage(&img[i], file, IMG_SIZE, IMG_SIZE);}//布雷for (int i = 0; i < MINE_NUM; ){//排除辅助区int row = rand() % ROW+1;//0-8  1-9int col = rand() % COL+1;if (mine[row][col] == 0){mine[row][col] = 9;i++;}}//雷所在的九宫格,要加1(雷除外)for (int i = 1; i < ROW+1; i++){for (int k = 1; k < COL+1; k++){if (mine[i][k] == 9){//遍历雷的九宫格 细心for (int a = i - 1; a <= i + 1; a++){for (int b = k - 1; b <= k + 1; b++){//非雷的格子加1if (mine[a][b] != 9){mine[a][b]++;}}}}}}//加密 开始时全部为掩码图for (int i = 1; i < ROW + 1; i++){for (int k = 1; k < COL + 1; k++){mine[i][k] += 20;}} }

鼠标信息处理函数

void MouseEvent(){//检测是否有鼠标消息if (MouseHit()){//获取鼠标消息,坐标,左键还是右键MOUSEMSG msg = GetMouseMsg();//把坐标转化成数组下标openr = msg.y / IMG_SIZE+1;openc = msg.x / IMG_SIZE+1;//判断是左键还是右键switch (msg.uMsg){case WM_LBUTTONDOWN://如果格子没有打开,就打开格子,否则不做处理if (mine[openr][openc] > 9){mine[openr][openc] -= 20;OpenNull(openr,openc);num++;}break;case WM_RBUTTONDOWN://标记if (mine[openr][openc] > 9 && mine[openr][openc] <= 29){mine[openr][openc] += 20;}else{mine[openr][openc] -= 20;}break;}}}

进行递归操作,判断鼠标点击的地方

//递归打开所有空白,以及空白周围的数字void OpenNull(int row,int col){//点击的是空白才能打开if (mine[row][col] == 0){for (int i = row - 1; i <= row + 1; i++){for (size_t k = col-1; k <= col+1; k++){//如果为空或者不是雷就打开if ((mine[i][k] == 20 || mine[i][k] != 29)&& mine[i][k]>9){mine[i][k] -= 20;num++;OpenNull(i, k);}}}}}

游戏的输赢判断函数,注意理清逻辑

void Jude(){//判断输if (mine[openr][openc] == 9){int isok = MessageBox(GetHWnd(), "是否继续!", "点到雷了", MB_OKCANCEL);if (isok == IDOK){mine[openr][openc] += 20;}else{exit(666);}}//判断赢if (num == ROW*COL - MINE_NUM){int isok = MessageBox(GetHWnd(), "是否继续!", "点到雷了", MB_OKCANCEL);if (isok == IDOK){num = 0;GameInit();}else{exit(666);}}}

最后就是我们的主函数了

int main(){GameInit();show();//循环处理游戏逻辑while (1){MouseEvent();GameDraw();Jude();}getchar();return 0;}

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用C++实现扫雷游戏”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网其他教程频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何使用C++实现扫雷游戏

本文链接: https://lsjlt.com/news/305963.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用C++实现扫雷游戏
    这篇文章主要介绍了如何使用C++实现扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏。 不久,“方块”被改写成...
    99+
    2023-06-25
  • C#如何实现扫雷游戏
    今天小编给大家分享一下C#如何实现扫雷游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、实验目的:掌握c#窗体和控件的常...
    99+
    2023-07-02
  • C#实现扫雷游戏
    目录一、实验目的:二、实验要求:三、实验内容:四、实验源代码:五、实验结果:六、总结本文实例为大家分享了C#实现扫雷游戏的具体代码,供大家参考,具体内容如下 一、实验目的: 1、掌握...
    99+
    2024-04-02
  • 使用C语言实现扫雷游戏
    目录一、游戏介绍二、实现模块三、实现原理四、实现逻辑五、全部代码六、运行结果本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下 一、游戏介绍 扫雷游戏是在一个...
    99+
    2022-11-13
    C语言 扫雷
  • 如何使用C语言代码实现扫雷游戏
    本篇内容主要讲解“如何使用C语言代码实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用C语言代码实现扫雷游戏”吧!概述扫雷是一款大众类的益智小游戏。游戏目标是根据点击格子出现的数...
    99+
    2023-06-08
  • 如何使用C语言实现简易扫雷游戏
    这篇文章主要介绍了如何使用C语言实现简易扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、头文件#define _CRT_SECURE_NO_WARNING...
    99+
    2023-06-26
  • 如何使用Java实现扫雷小游戏
    这篇文章主要介绍“如何使用Java实现扫雷小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Java实现扫雷小游戏”文章能帮助大家解决问题。效果展示主类:GameWin类package&n...
    99+
    2023-06-30
  • 使用C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 游戏规则 在一个9*9的地图上一共有十个雷,翻开所有不是雷的位置 游戏即为胜利, 如果踩到雷,游戏结束 ...
    99+
    2024-04-02
  • 用C语言实现扫雷游戏
    用C语言实现扫雷游戏,因为代码会比较多,所以采用多文件的方式,使代码看起来更好。 一.main.c 在主调函数中首先要提供一个给用户选择的界面,在这里我们假定选择1为开始游戏,0为退...
    99+
    2024-04-02
  • Easyx如何实现扫雷游戏
    今天给大家介绍一下Easyx如何实现扫雷游戏。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。代码:#include<stdio.h>#include...
    99+
    2023-06-26
  • C++实现趣味扫雷游戏
    本文实例为大家分享了C++实现趣味扫雷游戏的具体代码,供大家参考,具体内容如下 流程设计 1.初始化阵列。 2.输入坐标点。 3.选择:挖掘,标记,取消标记,重启,退出游戏。 如果选...
    99+
    2024-04-02
  • 用C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 1. 规则 随便点一个格子,会有一块,上面的数字就代表数字周围八个格子会有几个雷,是1他周围就只有1个雷...
    99+
    2024-04-02
  • 利用C语言实现扫雷游戏
    通过一段时间的C语言学习,想必小伙伴们也想跃跃欲试的编写一些小程序,这个扫雷简易游戏,非常适合C语言初学者去实践。 实现扫雷,首先要有两个棋盘,一个棋盘放置着雷的信息,另个用于展示到...
    99+
    2024-04-02
  • C语言如何实现简易扫雷游戏
    这篇文章主要介绍C语言如何实现简易扫雷游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、想要达到的游戏功能:大家如果想编写一个游戏,应具备以下的步骤:了解游戏的规则   知道游戏应...
    99+
    2023-06-20
  • 用java实现扫雷游戏
    用java做出简单一个扫雷游戏,供大家参考,具体内容如下 1.创造窗口 //创建扫雷窗口界面       public Saolei() {                     ...
    99+
    2024-04-02
  • C++控制台实现扫雷游戏
    本文实例为大家分享了C++控制台实现扫雷游戏的具体代码,供大家参考,具体内容如下 花了一下午写出来的控制台扫雷,主要通过修改和打印数组来实现。 主要的问题点: 1.在显示地图的过程中...
    99+
    2024-04-02
  • C++实现简易版扫雷游戏
    目录一、菜单栏二、创建棋盘数组三、初始化棋盘四、打印棋盘五、布置雷六、排查雷七、全部代码总结一、菜单栏 1.先用printf函数制作一个简易版的菜单,并附上选项提示,玩游戏或者退出游...
    99+
    2024-04-02
  • Easyx实现扫雷游戏
    本文实例为大家分享了Easyx实现扫雷游戏的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<stdlib.h&g...
    99+
    2024-04-02
  • 利用C语言如何实现一个扫雷游戏
    利用C语言如何实现一个扫雷游戏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。菜单的实现代码:int main(){int input =&nb...
    99+
    2023-06-06
  • 如何利用js+canvas实现扫雷游戏
    这篇文章主要介绍“如何利用js+canvas实现扫雷游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用js+canvas实现扫雷游戏”文章能帮助大家解决问题。代码如下<body>...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作