易语言是中国国产的编程语言,广泛用于外挂的制作,我有幸学了一点,运用自己的知识做了个六边形扫雷的小游戏。

玩法方面,和Windows自带的扫雷几乎很像,由于比较懒惰,就没加双击自动扫雷和扫雷排行榜等非核心功能板块,就是点击空白块扫雷,显示周围的雷的数目这样子。

首先是背景那个六边形的图,我的想法就很简单,用PS画一个呗,就这么完成了背景,然后就是图标啊、雷的图片、数字图片等等小图标,统统用PS很快就画完了,但是由于我的粗心,我的六边形并没有画成正六边形,也正是这次粗心,为我后来的算法提供了极大的方便。

背景什么的解决了,下面就改解决定位的问题了。我的想法是将每个六边形的中心用坐标进行位置确定,这个应该不难,其实就是高中学过的等差数列嘛,x轴和y轴坐标都是等差数列,很快实现了定位。但是我们可以通过我的图片看出,有些地方是半个六边形的区域,这些区域我打算写个函数判断鼠标是否出现在了这些区域然后将这些区域的鼠标点击PASS掉,当然也是通过等差数列写循环做到的。上面说了,由于不是正六边形,每个六边形的长和宽相同,坐标自然就是长宽的一半去加前面的a1了,给我的定位提提供了极大的方便。

然后就是布雷的问题,我想要的布雷效果是实现布雷布重复,这个我之前想了个二维的布雷算法,就是坐标x和y分别取随机数进行布雷,发现这样布雷的话重复的太多了,于是就想了个一维的布雷算法,首先生成一个数组,数组的组成是1-数组的长度,然后从1-数组的长度的数中取一个随机数,用这个随机数在坐标数组中定位这个点设置为雷区,重点来了,将这个成员删除掉,当我们布完一个雷之后,就将这个数字从数组成员中删除掉,这样我们就不会再取到这个数字了,因此不会重复。这是去重复去取二维坐标的算法,因为生成位置坐标在前,因此给我们随机生成雷的坐标提供了方便,不然我真准备去找个算法生成随机约束的坐标呢。,

然后就是点击空白区域后的自动扫雷算法,当然是采用递归了,先定义一个六个成员的数组,数组的成员值为横纵坐标的偏移值,然后写个次数为6的循环,我们每点击一个空白区域,空白区域的周围雷数为0的话,就自动去侦察周围六个方向的格子是否有雷,如果有雷,就停止继续侦察,如果没雷,就递归侦察,直到侦察到周围有雷的格子,还有就是,要注意不能让侦察的区域超出范围了。

然后就是鼠标点击定位,这个很简单,让我们之前的坐标与鼠标的位置坐标之间求距离,距离小于某个半径,就把鼠标点击的位置定位到某个之前生成的位置上去,这个位置就是我定义的有效鼠标点击位置。

然后就是胜利条件判断和失败条件判断了,由于不是核心程序,就不多说了。

然后去测试,发现如果雷多的画,首次点击很容易点到雷,于是将布雷的操作放在了第一次点击之后,果然,第一次点击之后不再中雷,都很顺利了。

整个开发过程并不复杂,程序写的也不麻烦。

程序下载:https://pan.lanzou.com/i0pb70d

源码下载:https://www.lanzous.com/i27eepc

转载于:https://www.cnblogs.com/aoru45/p/9861021.html

[易语言] 六边形扫雷游戏实战开发相关推荐

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

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

  2. 用c语言编写最大最小值_C语言学习教程,用C语言编写扫雷游戏

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

  3. 超详细分解c 语言——实现扫雷游戏(详解)

    之前利用三子棋程序,介绍探讨了 c语言简单游戏编写主要模块及使用方法. 今天,我们就利用这个经典扫雷游戏,来加强对于程序思路的编写及思路. 目录 前引 游戏规则介绍 一.基本游戏思路(游戏实现方法) ...

  4. c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)

    前言 本篇博客主要介绍如何使用C语言实现扫雷游戏. 一.游戏规则 在一张ROW行COL列的地图上存在MINE_COUNT个地雷.玩家输入坐标翻开格子,若没有踩雷,则计算此格子周围8个格子的地雷总数,并 ...

  5. c语言—实现扫雷游戏

    文章目录 什么是扫雷游戏 一.实现思路 二.头文件 三.主函数文件 1.菜单函数 2.主函数 四.游戏文件 1.地图初始化 2.展示地图 3.埋雷函数 4.判断该位置附近雷的个数 5.主游戏函数 五. ...

  6. 易语言 标准c 动态库,易语言Dll动态库的开发

    一.关于易语言DLL 易语言Dll动态库的开发是编程当中和其他语言开发进行交互必不可少的方法之一,从易语言3.6版开始,已经能够支持对DLL动态链接库的开发, 编译出的DLL是标准的DLL,和其他编程 ...

  7. 用C语言实现扫雷游戏

    用C语言实现扫雷游戏 -扫雷游戏的基本思路 1.打印游戏的菜单 2.为了便于后面排查周围雷的个数,初始化两个二维数组,一个作为向玩家显示的面板,一个作为布雷的面板.两个数组嵌套在一起.如下图所示: 3 ...

  8. 视频教程 | 3D 跑酷小游戏实战开发(下)

    上篇内容我们发布了 <视频教程 | 3D 跑酷小游戏实战开发(上)>,讲述了概述及创建.跑道创建.添加主角,今天我们继续学习:添加金币.处理碰撞.添加UI界面. 通过今天的学习,相信大家可 ...

  9. 易语言多线程大话西游2实战视频

    易语言多线程大话西游2实战视频

最新文章

  1. KeyMob推出移动广告平台,服务开发者与广告主
  2. linux执行某个目录的程序
  3. Google Map 中混淆和压缩代码的简单示例
  4. 项目记录:springmvc forward redirect 问题
  5. 【转】1.SharePoint服务器端对象模型 之 对象模型概述(Part 1)
  6. async await Task
  7. c1语言考试内容,c1证科目三考试内容
  8. android q桌面,Android Q带来全新桌面模式
  9. 编写10ms延时的子程序c语言,求解!!!用汇编语言编写延时程序问题!!!!...
  10. visa卡号生成器 在线_AINLP公众号新增quot;彩虹屁生成器quot;
  11. 遍历目录下的所有文件(文件)
  12. 计算机怎么获取权限删除文件,电脑删除文件需要获取trustedinstaller权限怎么回事...
  13. 大学生HTML作业篮球网页 HTML作业篮球网页期末作业 HTML+CSS篮球网页 HTML学生作业体育篮球网页
  14. L9110H电机驱动模块-FPGA
  15. 运维团队(OPS)与技术团队有效沟通配合探讨
  16. 补充:混淆矩阵、图像分割指标计算
  17. Python爬取cosplay小姐姐图片
  18. 计算机安装win10配置,win11发布了,那么安装win11配置要求是什么?win11配置要求详解...
  19. 高通Q+A Virtio hypervisor touch框架介绍(share-device)
  20. 《模拟电子技术基础》课程笔记(二)——课程概要

热门文章

  1. 手写Vue个人组件库——fl-Lazyimg 图片懒加载
  2. 计算机核心基础、计算机硬件组成原理、计算机硬件组成详解、硬盘接口及操作系统、计算机网络简述、OSI七层协议、子网划分、 VLAN简述
  3. 【离散数学】群论知识点总结
  4. 当下中国的十二种孤独
  5. echarts制作多个纵轴的折线图
  6. science 计算机论文,计算机科学毕业论文
  7. 苹果手机滑动光标怎么设置_iPhone手机三种方便又准确的移动光标方式
  8. 中止执行后超过2年_执行中止。债权人是否两年内都要申请执行一次。如果中止执行两年内不申请执行,是否都再也执行不了...
  9. UVa 1645 Count
  10. 关于微信公众号文章抓取