扫雷游戏


图片素材找的有点丑大佬勿怪

废话不多说上代码

#include<stdio.h>
#include<cmath>
#include<stdlib.h>
#include<time.h>
#include<graphics.h>#define ROW 10   //行
#define COL 10   //列
#define NUM 10  //雷的个数
#define SIZE 30
int map[ROW + 2][COL + 2]; //这里的+2是为了增加外围一圈的一个缓存区使得游戏区内的元素更合理
IMAGE img[12];void load()
{loadimage(&img[0], L"0.jpg", SIZE, SIZE);loadimage(&img[1], L"1.jpg", SIZE, SIZE);loadimage(&img[2], L"2.jpg", SIZE, SIZE); loadimage(&img[3], L"3.jpg", SIZE, SIZE);loadimage(&img[4], L"4.jpg", SIZE, SIZE);loadimage(&img[5], L"5.jpg", SIZE, SIZE);loadimage(&img[6], L"6.jpg", SIZE, SIZE);loadimage(&img[7], L"7.jpg", SIZE, SIZE);loadimage(&img[8], L"8.jpg", SIZE, SIZE);loadimage(&img[9], L"9.jpg", SIZE, SIZE);//雷loadimage(&img[10], L"10.jpg", SIZE, SIZE);//加謎loadimage(&img[11], L"11.jpg", SIZE, SIZE);//標記
}
//游戏初始化
void gameinit()
{//随机数srand(time(0));//根据时间改变随机for (int i = 0; i < ROW + 2; i++){for (int j = 0; j < COL + 2; j++){map[i][j] = 0;}}//让某一部分元素变成雷(随机每一行列为雷用-1表示雷)int n = NUM;while (n--){int row = rand() % ROW + 1;//1到10int col = rand() % COL + 1;//随机在某一行某一列if (map[row][col] == 0)//这行没有埋雷map[row][col] = -1;//改成雷}for (int i = 1; i <= ROW; i++){for (int j = 1; j <= COL; j++){if (map[i][j] != -1) //以这个不为-1的数为中心的几个数中-1的个数{for (int i1 = i - 1; i1 <= i + 1; i1++){for (int j1 = j - 1; j1 <= j + 1; j1++){if (map[i1][j1] == -1)map[i][j]++;}}}}}//每一个元素都+20 游戏for (int i = 1; i <= ROW; i++){//这样做是为了让扫雷时只要减去20就可以知道里面的数for (int j = 1; j <= COL; j++){map[i][j] += 20;}}
}//游戏的绘制函数
void gamepaint()
{for (int i = 1; i <= ROW; i++)//行{for (int j = 1; j <= COL; j++)//列{if (map[i][j] >= 0 && map[i][j] <= 8)//数字{putimage((j - 1) * SIZE, (i - 1) * SIZE, &img[map[i][j]]);//(j-1)表示列的坐标 ,(i-1)表示行的坐标(坐标从零开始)}else if (map[i][j] == -1)//雷{putimage((j - 1) * SIZE, (i - 1) * SIZE, &img[9]);}else if (map[i][j] >= 19 && map[i][j] <= 28)//加密{//这里就是把打印变成了更换图片的操作,(及用图片代替)putimage((j - 1) * SIZE, (i - 1) * SIZE, &img[10]);//在这里插入img[10]这张图//(j-1)表示列的坐标 ,(i-1)表示行的坐标(坐标从零开始)}else if (map[i][j] >= 40)//标记{putimage((j - 1) * SIZE, (i - 1) * SIZE, &img[11]);}}printf("\n");}
}//游戏的规则
int gameplay()
{//最前面加密的格子//从零到八的数字//小旗子(用来标记雷)//雷MOUSEMSG msg = { 0 };//鼠标操作msg = GetMouseMsg();if (msg.uMsg == WM_LBUTTONDOWN)//鼠标左键操作{//现在数字是加密的为19到28,左键解密操作int r = msg.y / SIZE + 1;//得到行int c = msg.x / SIZE + 1;//列if(map[r][c]>=19&&map[r][c]<=28)//只有在元素是被加密时才进行解码操作map[r][c] -= 20;//解码return map[r][c];//-1 点到雷了}else if (msg.uMsg == WM_RBUTTONDOWN){int r = msg.y / SIZE + 1;//得到行int c = msg.x / SIZE + 1;//列if (map[r][c] >= 19 && map[r][c] <= 28)//只有在元素是被加密map[r][c] += 100;//加密到旗子else if (map[r][c] >= 40)map[r][c] -= 40;return map[r][c];}
}
int main()
{initgraph(COL*SIZE,ROW*SIZE);  //整个大盒子load();     //输入图片数据gameinit();   //初始化操作while(1)      //多次遍历直到点到雷为止{gamepaint();if (gameplay()==-1)  //点到雷了{gamepaint();  //最后再显示一下;break;}}getchar();  //显示点到雷的图片return 0;
}

这里我是用visual studio 写的个人觉得这个是真的好 最早在这里写的时候#include<graphics.h>一直报错,查了一下
是少了EasyX “https://easyx.cn/”可以到这里下载而visual studio 最好也用开发者的版本

这是扫雷要插入的素材

如果看不懂可以看一下这个老师的讲解,讲的不错https://www.bilibili.com/video/BV15z4y1y7no?p=2&t=3608

简单的扫雷游戏代码(c++)相关推荐

  1. c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏

    本文实例为大家分享了C语言实现扫雷游戏及其优化的具体代码,供大家参考,具体内容如下 关于扫雷优化 1.核心思想:使用两个二维数组进行设计,一个用于显示,一个用于后台雷的布置. 2.使用宏常量,后期可以 ...

  2. 【180720】微软Windows扫雷游戏代码

    源码简介   本源码是一个微软Windows扫雷游戏代码,可选择难度级别:初级.中级.高级. 注意事项: 1.开发环境为Visual Studio 2010,使用.net 2.0开发. 源码下载地址: ...

  3. 用C语言实现一个简单的扫雷游戏

    初学者学习了一些c语言基础用法以后需要尝试实战练习,扫雷小游戏就十分适合.因为他能用到很多以前学习的知识,用来巩固再好不过了 废话不多说 开干 我们首先要有一个清晰的思路 和其他游戏一样我们打开游戏第 ...

  4. 简易扫雷游戏c语言程序,C++实现简单的扫雷游戏(控制台版)

    C++新手的代码,请各位多包涵. 用C++写的一个简单的控制台版扫雷游戏.玩家通过输入方块的坐标来翻开方块. 只是一个雏形,能够让玩家执行翻开方块的操作并且判断输赢,还未添加标记方块.游戏菜单.记录游 ...

  5. python扫雷游戏代码_python实现扫雷游戏的示例

    扫雷是一款益智类小游戏,最早于 1992 年由微软在 Windows 上发行,游戏适合于全年龄段,规则简单,即在最短的时间内找出所有非雷格子且在中间过程中不能踩到雷, 踩到雷则失败,需重新开始. 本文 ...

  6. Java写一个简单的扫雷游戏

    〇.目录 一.前言 二.过程中遇到的困难 三.代码 四.成品图 五.代码存在的bug 六.完善建议 七.结语 一.前言 这个学期学习了Java,课程的最后一项作业就是做一个扫雷游戏和一个计算器,经历一 ...

  7. 简单的扫雷游戏(9*9)(10个雷)

    参见三子棋(创建三个文件,打印目录) 实现game函数 搭建游戏平台 一个二维数组存放布置好的雷的信息(mine) 初始化为 '0' 一个二维数组存放排查出的雷的信息(show) 初始化为 '' 初始 ...

  8. 用Python自制扫雷游戏代码

    扫雷扫雷,我想用过电脑的朋友,应该都玩过这个小游戏吧.有时候我敲完代码无聊的时候,就会打开扫雷来玩玩,现在python也能用代码实现扫雷游戏了. 实例借鉴mvc模式,核心数据为model,维护1个矩阵 ...

  9. Python扫雷游戏代码

    这是一个 Python 扫雷游戏的示例代码: ``` 导入需要的库 import random import tkinter as tk 定义常量 SIZE = 400 GRID_LEN = 4 GR ...

  10. Java扫雷游戏代码

    实现扫雷游戏控制台版 扫雷游戏 a.游戏的分析 在游戏中需要存在对象包含哪些. 格子对象(Grid): 属性:内容(content).状态(type) b.工程架构 设计工程包结构 bean:存放实体 ...

最新文章

  1. Tengine 一个注重性能和兼容性的AI框架
  2. 梅宏院士:操作系统变迁有20年周期律,泛在计算是一片新蓝海
  3. 深入理解 Ribbon-Hystrix-Feign 三者之间的关系(一)
  4. 怎么查看页面跳转过程_faststone注册码怎么获取?英文官网打不开
  5. 让基础设施代码化更加容易,pulumi 都做了些什么?
  6. java如何使用md5加密_Java中MD5加密
  7. 粒子群优化算法matlab实现,粒子群优化算法的MATLAB程序实现+源程序
  8. R语言-数据包络分析法--DEA模型
  9. 使用 WinRAR 将bat转exe
  10. linux 3ds 模拟器下载,3DS模拟器电脑版
  11. Visual Studio Code——做嵌入式C/C++开发常用的编辑器软件安装及基本使用总结
  12. Informix 常用函数一
  13. 百钱买百鸡,​ 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。​ 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
  14. 计算机软考程序员常考知识点(1)
  15. 2019---高考加油!!!
  16. 无法删除文件夹,目录不是空的或U盘文件无法删除的解决办法
  17. 进口产品需要做3c认证么?如何办理?
  18. 网址导航网站简洁源码
  19. 华为手机记事本导出_华为手机备忘录如此好用!你只用来当记事本,真是大材小用了...
  20. CarSim仿真快速入门(二十三)-CarSimSimulink联合仿真中的 S-Function模块

热门文章

  1. 如何将运维的报警做成运营的报警--Java后端架构
  2. 安装程序无法验证产品密钥解决方案
  3. java桌面项目打包_by icewee_写得太棒了,直接转载了
  4. 正则表达式删除字符串中 html 标签
  5. (Kinetis K60) FTM输出PWM
  6. Lucene使用Filter搜索过滤
  7. linux应用程序逆向,Linux下查看并下载命令源码包(依据命令/应用程序逆向获取并且安装其所属源码包)...
  8. jsoncpp添加对象、数组与json对象的解析
  9. VS2010 C++环境下DLL和LIB文件目录及名称修改
  10. 梅创社c语言课本答案解析,c语言程序设计第2版) 教学课件 作者 梅创社答案 第一章答案.docx...