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

2024-02-12 01:20

本文主要是介绍vb.net极简版扫雷16*16,40雷源代码,仅供学习和参考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

源代码:只有120行

Imports System.Math
Public Class Form1Dim 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.LoadFlow1.Height = Flow1.WidthFor i = 0 To 16 * 16 - 1Dim but As New Buttonbut.Name = "but" & ibut.Tag = New Point(i Mod 16, i \ 16)but.BackColor = Color.LightBluebut.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_ClickAddHandler but.MouseDown, AddressOf But_MouseDownAddHandler but.MouseUp, AddressOf But_MouseUpFlow1.Controls.Add(but)NextDim 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) ThenGoTo HEnd IfLine.Add(Abs(s))NextFor i = 0 To 39Booms.Add(New Point(Line(i) Mod 16, Line(i) \ 16))NextEnd SubSub But_Click(sender As Object, e As EventArgs)If Booms.Contains(sender.tag) ThenIf sender.text <> "-1" ThenMsgBox("Boom!")End IfElseIf sender.text = "-1" ThenExit SubEnd Ifsender.text = 0sender.backcolor = Color.LightGrayDim P0 = sender.tagDim 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 WithFor Each boom In BoomsIf Round.Contains(boom) Thensender.text += 1End IfNextIf sender.text = 0 ThenFor Each but In Flow1.ControlsIf Round.Contains(but.tag) And but.text = "" Thenbut.PerformClickEnd IfNextEnd IfEnd IfEnd SubSub But_MouseDown(sender As Object, e As MouseEventArgs)If e.Button = MouseButtons.Right ThenIf sender.text = "-1" Thensender.text = ""sender.backcolor = Flow1.BackColorElseIf sender.text = "" Thensender.text = -1sender.backcolor = Color.RedElseDim P0 = sender.tagDim Pt = sender.textDim 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 WithDim BoomCount As IntegerFor Each but In Flow1.ControlsIf Round.Contains(but.tag) And but.text = "-1" ThenBoomCount += 1End IfNextIf Pt = BoomCount ThenFor Each but In Flow1.ControlsIf Round.Contains(but.tag) Thenbut.performclickEnd IfNextEnd IfEnd IfEnd IfEnd SubSub But_MouseUp(sender As Object, e As MouseEventArgs)Dim i As IntegerFor Each but In Flow1.ControlsIf but.text <> "" And but.text <> "-1" And Not Booms.Contains(but.tag) Theni += 1End IfNextIf i = 16 * 16 - 40 ThenMsgBox("你赢了!")End IfEnd Sub
End Class

这篇关于vb.net极简版扫雷16*16,40雷源代码,仅供学习和参考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701309

相关文章

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和