vb.net极简版扫雷16*16,40雷源代码,仅供学习和参考

news2024/11/25 16:27:23

效果图:下载地址:链接:https://pan.baidu.com/s/14rrZujpQbfs-9HMw_lL-3Q?pwd=1234 
提取码:1234

源代码:只有120行

Imports System.Math
Public Class Form1
    Dim Booms As New List(Of Point)
    Dim MyBooms As New List(Of Point)
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Flow1.Height = Flow1.Width
        For i = 0 To 16 * 16 - 1
            Dim but As New Button
            but.Name = "but" & i
            but.Tag = New Point(i Mod 16, i \ 16)
            but.BackColor = Color.LightBlue
            but.Font = New Font(but.Font.FontFamily, 20, but.Font.Style)
            but.Location = New Point(but.Tag.X * 52, but.Tag.y * 52)
            but.Size = New Size(Flow1.Width / 16, Flow1.Height / 16)
            AddHandler but.Click, AddressOf But_Click
            AddHandler but.MouseDown, AddressOf But_MouseDown
            AddHandler but.MouseUp, AddressOf But_MouseUp
            Flow1.Controls.Add(but)
        Next
        Dim Line As New List(Of Integer)
        For i = 1 To 40
H:          Dim s = New Random().Next(0, 255)
            Threading.Thread.Sleep(1)
            s = Abs(New Random().Next(0, 24) - s)
            If Line.Contains(s) Then
                GoTo H
            End If
            Line.Add(Abs(s))
        Next
        For i = 0 To 39
            Booms.Add(New Point(Line(i) Mod 16, Line(i) \ 16))
        Next
    End Sub
    Sub But_Click(sender As Object, e As EventArgs)
        If Booms.Contains(sender.tag) Then
            If sender.text <> "-1" Then
                MsgBox("Boom!")
            End If
        Else
            If sender.text = "-1" Then
                Exit Sub
            End If
            sender.text = 0
            sender.backcolor = Color.LightGray
            Dim P0 = sender.tag
            Dim Round As New List(Of Point)
            With Round
                .Add(New Point(P0.x - 1, P0.y - 1))
                .Add(New Point(P0.x, P0.y - 1))
                .Add(New Point(P0.x + 1, P0.y - 1))
                .Add(New Point(P0.x - 1, P0.y))
                .Add(New Point(P0.x + 1, P0.y))
                .Add(New Point(P0.x - 1, P0.y + 1))
                .Add(New Point(P0.x, P0.y + 1))
                .Add(New Point(P0.x + 1, P0.y + 1))
            End With
            For Each boom In Booms
                If Round.Contains(boom) Then
                    sender.text += 1
                End If
            Next
            If sender.text = 0 Then
                For Each but In Flow1.Controls
                    If Round.Contains(but.tag) And but.text = "" Then
                        but.PerformClick
                    End If
                Next
            End If
        End If
    End Sub
    Sub But_MouseDown(sender As Object, e As MouseEventArgs)
        If e.Button = MouseButtons.Right Then
            If sender.text = "-1" Then
                sender.text = ""
                sender.backcolor = Flow1.BackColor
            ElseIf sender.text = "" Then
                sender.text = -1
                sender.backcolor = Color.Red
            Else
                Dim P0 = sender.tag
                Dim Pt = sender.text
                Dim Round As New List(Of Point)
                With Round
                    .Add(New Point(P0.x - 1, P0.y - 1))
                    .Add(New Point(P0.x, P0.y - 1))
                    .Add(New Point(P0.x + 1, P0.y - 1))
                    .Add(New Point(P0.x - 1, P0.y))
                    .Add(New Point(P0.x + 1, P0.y))
                    .Add(New Point(P0.x - 1, P0.y + 1))
                    .Add(New Point(P0.x, P0.y + 1))
                    .Add(New Point(P0.x + 1, P0.y + 1))
                End With
                Dim BoomCount As Integer
                For Each but In Flow1.Controls
                    If Round.Contains(but.tag) And but.text = "-1" Then
                        BoomCount += 1
                    End If
                Next
                If Pt = BoomCount Then
                    For Each but In Flow1.Controls
                        If Round.Contains(but.tag) Then
                            but.performclick
                        End If
                    Next
                End If
            End If
        End If
    End Sub
    Sub But_MouseUp(sender As Object, e As MouseEventArgs)
        Dim i As Integer
        For Each but In Flow1.Controls
            If but.text <> "" And but.text <> "-1" And Not Booms.Contains(but.tag) Then
                i += 1
            End If
        Next
        If i = 16 * 16 - 40 Then
            MsgBox("你赢了!")
        End If
    End Sub
End Class

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1444602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐系统|物品冷启动01_优化目标评价(包括基尼系数)

文章目录 物品冷启动冷启动的类型“新”按常规推送链路的角度按产品生态角度 物品冷启动的目标和评价指标作者侧用户侧 冷启动的衡量 物品冷启动 冷启动的类型 冷启动的内容种类包括很多方面&#xff0c;本文只介绍UGC的冷启动。 所谓UGC&#xff0c;就是User Generate Conte…

leetcode(二分查找)35.搜索插入位置(C++详细解释)DAY6

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。…

利用YOLOv8 pose estimation 进行 人的 头部等马赛克

文章大纲 马赛克几种OpenCV 实现马赛克的方法高斯模糊pose estimation 定位并模糊:三角形的外接圆与膨胀系数实现实现代码实现效果参考文献与学习路径之前写过一个文章记录,怎么对人进行目标检测后打码,但是人脸识别有个问题是,很多人的背影,或者侧面无法识别出来人脸,那…

python从入门到精通(十):python常见标准库的使用

python数据分析和可视化基础 &#xff08;一&#xff09;Python 中处理日期和时间的模块time导入time模块time获取当前时间戳localtime获取当前时间struct_timeasctime获取格式化的时间ctime获取格式化的时间gmtime获取格式化的时间计时器功能strftime格式化日期strptime格式化…

顶级思维方式——认知篇三(财富与金钱)

目录 1、 什么是财富/财富的定义&#xff1f; 2、财富的影响 3、 财富意味着什么&#xff1f; 4、财富与幸福的关系 5、物质财富如何使用才有实际意义&#xff1f; 6、金钱的运作方式 7、【物质财富自由】后的选择 1、 什么是财富/财富的定义&#xff1f; 财富是一个多维…

MOMENTUM: 1

攻击机 192.168.223.128 目标机 192.168.223.146 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -sV -p- -A 192.168.223.146 开启了22 80端口 看一下web界面 随便打开看看 发现这里有个参数id&#xff0c;sql尝试无果&#xff0c;发现写入什么&#xff0c;网页显示…

2014-2022上市公司纳税信用评级、企业税务评级数据

2014-2022上市公司纳税信用评级、企业税务评级数据 1、时间&#xff1a;2014-2022年 2、来源&#xff1a;上市公司信用BG 3、指标&#xff1a;code&#xff0c;year&#xff0c;证券代码&#xff0c;纳税人名称。统一社会信用代码&#xff0c;纳税信用评级 4、样本量&#…

整合RabbitMQ实现消息异步发送

消息队列中间件 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削峰等问题。 中间件最标准的用法是生产者生产消息传送到队列&#xff0c;消费者从队列中拿取消息并处理&#xff0c;生产者不用关心是谁来消费&#…

《21天精通IPv4 to IPv6》第5天:IPv4与IPv6共存策略——如何为不同的系统实现IPv4与IPv6共存问题?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

华为OD机试 - 分配土地( Python C C++ JavaGo JS PHP)

题目描述 从前有个村庄&#xff0c;村民们在各种田地上插上小旗子&#xff0c;每个旗子上都标识了一个数字。现在&#xff0c;村民们想要找出一个包含相同数字的最小矩形区域&#xff0c;并将这块土地分配给对村庄做出巨大贡献的村民。我们需要找出这个矩形区域的最大面积。 …

SPI NOR FLASH和SPI NAND FLASH

SPI NOR FLASH和SPI NAND FLASH是两种不同的存储设备&#xff0c;它们在硬件接口和软件应用上都有所不同。以下是关于这两种存储设备更详细的介绍&#xff1a; 1.SPI NOR FLASH SPI NOR FLASH是一种非易失性存储器&#xff0c;它通过串行接口进行数据传输&#xff0c;具有读写…

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

一文读懂:Docker从入门到进阶(超详细实践应用、零踩坑)

文章目录 快速入门简介安装配置镜像加速部署MySQL Docker基础常见命令案例-部署Nginx命令别名数据卷挂载本地目录挂载DockerFile语法自定义镜像容器网络互联 项目部署部署Java应用部署前端DockerCompose 快速入门 简介 Docker是一个快速构建、运行、管理应用的工具。 传统的…

【Linux】学习-基础IO拓展篇

Linux基础IO拓展篇—详解文件系统 理解文件系统 在Linux基础IO篇中&#xff0c;我们站在用户的视角对文件进行了理解&#xff0c;主要是针对被打开的文件&#xff0c;那么有没有没有被打开的文件呢&#xff1f;当然有&#xff01;今天我们换个视角&#xff0c;来站在系统的角…

考研数据结构笔记(7)

循环链表、静态链表、顺序表和链表的比较 循环链表循环单链表循环双链表 静态链表什么是静态链表如何定义一个静态链表&#xff1f;简述基本操作的实现 顺序表和链表的比较逻辑结构物理结构/存储结构数据的运算/基本运算创建销毁增加、删除查找 循环链表 循环单链表 循环双链表…

【Linux】学习-进程间通信

进程间通信 介绍 进程间通信的本质 进程间通信的前提&#xff0c;首先需要让不同的进程看到同一块“内存”此“内存”一定不属于任何进程&#xff0c;而应该强调共享二字 进程间通信的目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;…

springcloud分布式架构网上商城源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项…

微信小程序的大学生心理测试+后台管理

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

Acwing---839. 模拟堆

模拟堆 1.题目2.基本思想3.代码实现 1.题目 维护一个集合&#xff0c;初始时集合为空&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个数 x&#xff1b;PM&#xff0c;输出当前集合中的最小值&#xff1b;DM&#xff0c;删除当前集合中的最小值&#xff08…

Python网络通信

目录 基本的网络知识 TCP/IP IP地址 端口 HTTP/HTTPS HTTP HTTPS 搭建自己的Web服务器 urllib.request模块 发送GET请求 发送POST请求 JSON数据 JSON文档的结构 JSON数据的解码 下载图片示例 返回所有备忘录信息 此文章讲解如何通过Python访问互联网上的资源&a…