吾爱分享资源网

 找回密码
 立即注册
快捷导航
搜索
查看: 456|回复: 0

易语言扫雷完美版源码

[复制链接]

1668

主题

1790

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18384
金币
8274
发表于 2021-1-19 22:09:55 | 显示全部楼层 |阅读模式
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

提取密码:5ifx88 
下载次数:4  文件大小:0 Bytes 
下载权限: 不限 以上或 VIP会员   [加入VIP]   [获取金币]  [免费赚金币]



易语言编写效果和电脑自带的一样
QQ截图20210119220553.jpg
部分代码如下
  
窗口程序集名保 留  保 留备 注
窗口程序集1   
变量名类 型数组备 注
键值短整数型  

子程序名返回值类型公开备 注
设置界面  
画板1.移动 (, , 横 × 16 + 5, 纵 × 16 + 5)
画板1.底图 = #tp
标签3.宽度 = 画板1.宽度 - 1
宽度 = 画板1.宽度 + 25
如果 (横 ≤ 11)
高度 = 画板1.高度 + 32 + 92
高度 = 画板1.高度 + 32 + 74
标签2.移动 (宽度 - 64, , , )
图形按钮1.移动 ( (宽度 - 图形按钮1.宽度 - 6) ÷ 2, , , )
_图形按钮1_被单击 ()
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
底图 = 载入图片 ( #tp )
踩中 = 载入图片 ( #踩中 )
图形按钮1.正常图片 = #正常
如果 (取数值注册表项 (“晗鑫的扫雷”, “用户设置”, “级别”, ) ≠ 0)
级别 = 取数值注册表项 (“晗鑫的扫雷”, “用户设置”, “级别”, )
判断 (级别 = 10)
横 = 取数值注册表项 (“晗鑫的扫雷”, “用户设置”, “横”, )
纵 = 取数值注册表项 (“晗鑫的扫雷”, “用户设置”, “纵”, )
布雷数 = 取数值注册表项 (“晗鑫的扫雷”, “用户设置”, “雷数”, )
自定义.选中 = 真
设置界面 ()
判断 (级别 = 1)
_初级_被选择 ()
判断 (级别 = 2)
_中级_被选择 ()
_高级_被选择 ()
判断插旗错误.选中 = 选择 (取文本注册表项 (“晗鑫的扫雷”, “用户设置”, “插旗错误”, )“真”, 真, )
标记.选中 = 选择 (取文本注册表项 (“晗鑫的扫雷”, “用户设置”, “标记”, )“真”, 真, )
_中级_被选择 ()

子程序名返回值类型公开备 注
_图形按钮1_被单击  
标签2.标题 = “”
连续赋值 (0, 时钟1.时钟周期, 键值, 展开区, 已挖雷数)
画板1.禁止 = 假
画板1.清除 (0, 0, , )
重定义数组 (布雷区, 假, 横, 纵)
标签1.标题 = 到文本 (布雷数)
子程序名返回值类型公开备 注
_开局_被选择  
清空 ()
_图形按钮1_被单击 ()
子程序名返回值类型公开备 注
_初级_被选择  
初级.选中 = 真
连续赋值 (假, 中级.选中, 高级.选中, 自定义.选中)
连续赋值 (8, 横, 纵)
布雷数 = 10
级别 = 1
设置界面 ()
子程序名返回值类型公开备 注
_中级_被选择  
中级.选中 = 真
连续赋值 (假, 初级.选中, 高级.选中, 自定义.选中)
连续赋值 (16, 横, 纵)
布雷数 = 40
级别 = 2
设置界面 ()
子程序名返回值类型公开备 注
_高级_被选择  
高级.选中 = 真
连续赋值 (假, 初级.选中, 中级.选中, 自定义.选中)
横 = 30
纵 = 16
布雷数 = 99
级别 = 3
设置界面 ()
子程序名返回值类型公开备 注
_自定义_被选择  
载入 (自定义窗口, _启动窗口, )
子程序名返回值类型公开备 注
_时钟1_周期事件  
标签2.标题 = 到文本 (到数值 (标签2.标题) + 1)
子程序名返回值类型公开备 注
_退出_被选择  
销毁 ()
子程序名返回值类型公开备 注
挖完了  
变量名类 型静态数组备 注
y整数型  
x整数型  
画板1.禁止重画 ()
计次循环首 (纵, y)
计次循环首 (横, x)
判断 (布雷区 [x] [y] = 9 布雷区 [x] [y] = 30)
画板2.复制 (160, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
标签1.标题 = 到文本 (到数值 (标签1.标题) - 1)
判断 (布雷区 [x] [y] = 0 布雷区 [x] [y] = 31)
c = 周围雷数 (x, y)
画板2.复制 (c × 16, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
判断 (布雷区 [x] [y] = 21)
画板2.复制 (176, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )



计次循环尾 ()
x = 0
计次循环尾 ()
画板1.允许重画 ()
画板1.禁止 = 真
连续赋值 (0, 键值, 时钟1.时钟周期)
信息框 (“祝贺您!揪质だ耍  + 选择 (到数值 (标签1.标题) ≥ 0, “”, “但您还有” + 到文本 (取绝对值 (到数值 (标签1.标题))) + “处标记地雷错误,” + #换行符 + “望”) + “再接再励,再创辉煌。”, #信息图标, “祝贺”)
如果真 (级别 ≠ 10)
y = 到数值 (取文本注册表项 (“晗鑫的扫雷”, “用户设置”, 多项选择 (级别, “初级”, “中级”, “高级”), ))
如果真 (y > 到数值 (标签2.标题) y = 0)
载入 (雷英雄榜窗口, , )


子程序名返回值类型公开备 注
_画板1_鼠标左键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
功能键状态整数型   
如果真 (时钟1.时钟周期 = 0)
标签2.标题 = “1”
时钟1.时钟周期 = 1000
如果真 (键值 ≤ 0 键值 = 10)
键值 = 0
键值 = 键值 + 1
图形按钮1.正常图片 = #双键按下
俘获鼠标 (画板1.取窗口句柄 ())
如果真 (横向位置 \ 16 < 横 纵向位置 \ 16 < 纵)
如果真 (键值 = 1 布雷区 [横向位置 \ 16 + 1] [纵向位置 \ 16 + 1] = 0)
画板2.复制 (0, 0, 16, 16, 画板1, (横向位置 \ 16) × 16 + 1, (纵向位置 \ 16) × 16 + 1, )

如果真 (键值 = 3)
画板1.禁止重画 ()
左右键双击 (横向位置, 纵向位置, 1)  ' “1”表示左右键都按下了,“2”示左右键都放开了,“3”表示左右键都按下且鼠标位置移动。以下同
画板1.允许重画 ()

子程序名返回值类型公开备 注
_画板1_鼠标右键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
功能键状态整数型   
如果真 (键值 ≤ 0 键值 = 10)
键值 = 0
键值 = 键值 + 2
俘获鼠标 (画板1.取窗口句柄 ())
如果真 (键值 = 3 时钟1.时钟周期 > 0)
左右键双击 (横向位置, 纵向位置, 1)

子程序名返回值类型公开备 注
左右键双击  
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
按键状态整数型   
变量名类 型静态数组备 注
x短整数型  
y短整数型  
a整数型  
b整数型  
坐标文本型 0
未扫中短整数型  
扫中短整数型  
x = 横向位置 \ 16 + 1
y = 纵向位置 \ 16 + 1
如果真 (x > 横 y > 纵)
返回 ()
计次循环首 (9, a)
x = 多项选择 (a, x, x - 1, x, x + 1, x + 1, x, x, x - 1, x - 1)
y = 多项选择 (a, y, y, y - 1, y, y, y + 1, y + 1, y, y)
如果真 (x ≥ 1 x ≤ 横 y ≥ 1 y ≤ 纵)
如果 (按键状态 = 1)
如果真 (布雷区 [x] [y] ≤ 9 布雷区 [x] [y] = 30 布雷区 [x] [y] = 31)
加入成员 (坐标, 到文本 (x)“;”到文本 (y))

如果真 (布雷区 [x] [y] = 40 布雷区 [x] [y] = 41)  ' 40指有雷区用户鼠标双击压下未放开,41指没雷区用户鼠标双击压下未放开
加入成员 (坐标, 到文本 (x)“;”到文本 (y))
判断 (布雷区 [x] [y] = 20)
扫中 = 扫中 + 1
判断 (布雷区 [x] [y] = 21)
未扫中 = 未扫中 + 1





计次循环尾 ()
判断 (判断插旗错误.选中 = 未扫中 > 0 未扫中 = 布雷区 [x + 1] [y - 1] - 10 - 扫中)
未扫中 = 10
判断 (扫中 > 0 扫中 = 布雷区 [x + 1] [y - 1] - 10 按键状态 ≠ 3)
按键状态 = 4


b = 取数组成员数 (坐标)
计次循环首 (b, a)
x = 到数值 (坐标 [a])
y = 到数值 (取文本中间 (坐标 [a], 寻找文本 (坐标 [a], “;”, , ) + 1, 2))
画板2.复制 (选择 (按键状态 = 1 按键状态 = 4, 0, 144), 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
布雷区 [x] [y]选择 (按键状态 = 1 按键状态 = 4, 选择 (布雷区 [x] [y] = 9 布雷区 [x] [y] = 30, 40, 41), 选择 (布雷区 [x] [y] = 40, 9, 0))
如果真 (按键状态 = 4)
c = 周围雷数 (x, y)
画板2.复制 (c × 16, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
如果真 (布雷区 [x] [y] - 10 = 0)
找空档 (x, y)
如果真 (展开区 = 横 × 纵 - 布雷数)
挖完了 ()
返回 ()


计次循环尾 ()
如果真 (未扫中 = 10 按键状态 = 2)
踩中 ()

子程序名返回值类型公开备 注
_画板1_鼠标左键被放开逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
功能键状态整数型   
变量名类 型静态数组备 注
y短整数型  
x短整数型  
图形按钮1.正常图片 = #正常
x = 横向位置 \ 16 + 1
y = 纵向位置 \ 16 + 1
键值 = 键值 - 1
画板1.禁止重画 ()
如果 (键值 = 0)
如果真 (展开区 = 0)
布雷 (x, y)
如果真 (x ≥ 1 x ≤ 横 y ≥ 1 y ≤ 纵 布雷区 [x] [y] < 10)
如果 (布雷区 [x] [y] = 9)
画板1.画图片 (踩中, (x - 1) × 16 + 1, (y - 1) × 16 + 1, , , )
布雷区 [x] [y] = 100
踩中 ()
c = 周围雷数 (x, y)
画板2.复制 (c × 16, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
如果真 (布雷区 [x] [y] - 10 = 0)
找空档 (x, y)
如果真 (展开区 = 横 × 纵 - 布雷数)
挖完了 ()



左右键双击 (横向位置, 纵向位置, 2)
键值 = 10
画板1.允许重画 ()
释放鼠标 ()
子程序名返回值类型公开备 注
_画板1_鼠标右键被放开逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
功能键状态整数型   
变量名类 型静态数组备 注
y短整数型  
x短整数型  
rq整数型  
图形按钮1.正常图片 = #正常
x = 横向位置 \ 16 + 1
y = 纵向位置 \ 16 + 1
如果真 (时钟1.时钟周期 = 0)
时钟1.时钟周期 = 1000
键值 = 键值 - 2
画板1.禁止重画 ()
如果 (键值 = 0)
如果真 (x ≥ 1 x ≤ 横 y ≥ 1 y ≤ 纵)
判断 (布雷区 [x] [y] < 10)
画板2.复制 (160, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
标签1.标题 = 到文本 (到数值 (标签1.标题) - 1)
判断 (布雷区 [x] [y] = 9)
布雷区 [x] [y] = 20  ' 布雷区 [x] [y] = 20表示该地已被用户标记为了地雷,并且被挖中了
已挖雷数 = 已挖雷数 + 1
判断 (布雷区 [x] [y] < 9)
布雷区 [x] [y] = 21  ' 布雷区 [x] [y] = 21表示该地已被用户标记为了地雷,但是未被挖中


如果真 (已挖雷数 = 布雷数)
挖完了 ()

判断 (布雷区 [x] [y] = 20 布雷区 [x] [y] = 21)
如果真 (布雷区 [x] [y] = 20)
已挖雷数 = 已挖雷数 - 1
画板2.复制 (144, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )
如果 (标记.选中 = )
布雷区 [x] [y]选择 (布雷区 [x] [y] = 20, 30, 31)  ' 布雷区 [x] [y] = (30有雷被用户标记为了“?”)或(31表示无雷被用户标记为了“?”)
画板1.文本颜色 = #藏青
画板1.定位写出 ( (x - 1) × 16 + 4, (y - 1) × 16 + 3, “?”)
布雷区 [x] [y]选择 (布雷区 [x] [y] = 20, 9, 0)
如果真 (到数值 (标签1.标题) > 0)
标签1.标题 = 到文本 (到数值 (标签1.标题) + 1)

判断 (布雷区 [x] [y] = 30 布雷区 [x] [y] = 31)
布雷区 [x] [y]选择 (布雷区 [x] [y] = 30, 9, 0)
画板2.复制 (144, 0, 16, 16, 画板1, (x - 1) × 16 + 1, (y - 1) × 16 + 1, )




左右键双击 (横向位置, 纵向位置, 2)
键值 = 10
画板1.允许重画 ()
释放鼠标 ()
子程序名返回值类型公开备 注
_画板1_鼠标位置被移动逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型   
纵向位置整数型   
功能键状态整数型   
变量名类 型静态数组备 注
原横向位置整数型 
原纵向位置整数型 
原x短整数型  
原y短整数型  
现x短整数型  
现y短整数型  
原x = 原横向位置 \ 16
原y = 原纵向位置 \ 16
现x = 横向位置 \ 16
现y = 纵向位置 \ 16
判断 (原x = 现x 原y = 现y)
返回 ()
判断 (键值 = 1)
如果真 (原x < 横 原y < 纵)
如果真 (布雷区 [原x + 1] [原y + 1] = 0)
画板2.复制 (144, 0, 16, 16, 画板1, 原x × 16 + 1, 原y × 16 + 1, )

如果真 (现x < 横 现y < 纵)
如果真 (布雷区 [现x + 1] [现y + 1] = 0)
画板2.复制 (0, 0, 16, 16, 画板1, 现x × 16 + 1, 现y × 16 + 1, )


判断 (键值 = 3)
左右键双击 (原横向位置, 原纵向位置, 3)
左右键双击 (横向位置, 纵向位置, 1)


原横向位置 = 横向位置
原纵向位置 = 纵向位置
子程序名返回值类型公开备 注
_关于扫雷_被选择  
调用关于窗口 (取窗口句柄 (), “扫雷”, “本程序用易语言所编写,功能与 Windows 系统中自带的扫雷一样。        作者:Myqhx”, 取执行文件名 ()“,001”)
子程序名返回值类型公开备 注
_帮助主题_被选择  
打开关联文件 (取窗口句柄 (), “open”, 取特定目录 (9)“Help\winmine.chm”, “”, “”, 1)
子程序名返回值类型公开备 注
_标记_被选择  
标记.选中 = 选择 (标记.选中 = 真, 假, )
子程序名返回值类型公开备 注
_扫雷英雄榜_被选择  
扫雷英雄榜.选中 = 真
载入 (雷英雄榜窗口, , )
子程序名返回值类型公开备 注
__启动窗口_将被销毁  
如果真 (级别 = 10)
写注册表项 (“晗鑫的扫雷”, “用户设置”, “横”, 横)
写注册表项 (“晗鑫的扫雷”, “用户设置”, “纵”, 纵)
写注册表项 (“晗鑫的扫雷”, “用户设置”, “雷数”, 布雷数)
写注册表项 (“晗鑫的扫雷”, “用户设置”, “级别”, 级别)
写注册表项 (“晗鑫的扫雷”, “用户设置”, “插旗错误”, 选择 (判断插旗错误.选中 = 真, “真”, “假”))
写注册表项 (“晗鑫的扫雷”, “用户设置”, “标记”, 选择 (标记.选中 = 真, “真”, “假”))
子程序名返回值类型公开备 注
_判断插旗错误_被选择  
判断插旗错误.选中 = 选择 (判断插旗错误.选中 = 真, 假, )


i支持库列表   支持库注释   
shell操作系统界面功能支持库





上一篇:华容道(易语言2005年大赛三等奖)源码
下一篇:穿越火线辅助程序易语言源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2021-3-2 22:55 , Processed in 1.203149 second(s), 44 queries .
Powered by Discuz! X3.2 © 2001-2017 Comsenz Inc.
快速回复 返回顶部 返回列表