vb.net扫雷下载 vb 扫雷

求一个扫雷游戏程序编写代码,一定要是用VB.NET编写的~急!!!!!!!!`扫雷程序最重要的算法应该就是空白区域展开的那段.现在我想到的有两种方法
一种是递归算法(比较容易),一种是用类似于堆栈的算法,不过现在我懒的写了,
把源码贴出来如果大家有兴趣的话可以给予改进.记得给我发一份哟,谢谢!
(本代码为交流学习而用,大家可以任意转载.)
下载:
VB.NET扫雷地雷是在一个控件中画出来好还是每个方格用一个控件好呢?谢谢!画出来比较好,用鼠标当前坐标位置进行计算选择的方格位置,如果一个方格用一个控件,会很浪费资源 。
谁用VB6.0做一个扫雷 , 并且写出代码和解释'窗体1
Option Explicit
Private Const vbGray = H848284'灰色
Private Const MLeft As Long = 180'雷区距离左侧(按Twips计算)
Private Const MTop As Long = 825'雷区距离上部
Private Const WAVE_DEFAULT = 432'默认声音
Private Const WAVE_VICTORY = 433'失败声音
Private Const WAVE_LOST = 434'胜利声音
Private Const BMP_GRID_WIDTH = 16'格子的宽
Private Const BMP_GRID_HEIGHT = 16'格子的高
Private Const BMP_NUM_WIDTH = 13'数字的宽
Private Const BMP_NUM_HEIGHT = 23'数字的高
Private Const BMP_NUM_TOP = 16'数字距离上边(菜单底)
Private Const BMP_NUM_MINE_LEFT = 17'计数器距离左侧
Private Const BMP_NUM_TIME_RIGHT = BMP_NUM_WIDTH * 320'计时器左侧距离窗体右侧
Private Const BMP_FACE_WIDTH = 24'表情的宽
Private Const BMP_FACE_HEIGHT = 24'表情的高
Private Const BMP_FACE_TOP = 16'表情距离上边(菜单底)
Private CanPeeper As Boolean'作弊啊
'初级9/9/10
'中级16/16/40
'高级30/16/99
'Private NoMine As Boolean
Private Sub InithDC()
Dim I As Long
Dim hBmp As StdPicture
'从资源读取游戏图片
For I = 0 To 2
【vb.net扫雷下载 vb 扫雷】'不用PictureBox
Set hBmp = LoadResPicture(IIf(MnuCheck(1).Checked, 410, 411)I * 10, vbResBitmap)
Let hBmpDC(I) = CreateCompatibleDC(Me.hdc)
Call SelectObject(hBmpDC(I), hBmp.Handle)
Set hBmp = Nothing
Next
End Sub
'开始
Public Sub GameStart()
'NoMine = False
Let Me.Width = MLeft(MWidth * 168GetMePixelWidth - Me.ScaleWidth) * Screen.TwipsPerPixelX '调整窗体宽度
Let Me.Height = MTop(MHeight * 168GetMePixelHeight - Me.ScaleHeight) * Screen.TwipsPerPixelY '调整窗体高度270 OR 390'19/26'495/510
Let IsFirstHit = False '没有埋雷'没有处理第一个雷
Let IsGameWin = False '没有赢
Let IsGameOver = False '没有输
Let Timer1.Enabled = False '定时器,需要鼠标激活
Let Time_Count = 0 '记时器清零
Let NowFace = 4 'Call CheckFace(4)
ReDim N(MWidth - 1, MHeight - 1)
Let Show_Count = MWidth * MHeight '倒计数字,剩余未揭开的格子
Let Mine_Count = Mines '剩余未标记的地雷
Call Form_Paint
Call SetMines
End Sub
'Download by
Private Sub SetMines() 'Optional ByVal X As Long, Optional ByVal Y As Long
'初始化地雷
Dim I As Long ', J As Long
Dim A As Long, B As Long
Dim K As Long, L As Long
Call Math.Randomize '初始化随机数生成器 。
For I = 0 To Mines - 1
Let A = Int(MWidth * Rnd) 'Int((upperbound - lowerbound1) * Rndlowerbound)
Let B = Int(MHeight * Rnd)
If Not N(A, B).IsMine Then'不能重复,不能是按下的位置'Not (A = X And b = Y) And
'If I = 1 Then
'If NoMine = False Then
'Let A = X: b = Y'第一个按下去总是雷 - -#
'End If
'End If
Let N(A, B).IsMine = True
'统计每个格子周围的地雷数目
Addtion A, B, 1
Else
Let I = I - 1 '再来
End If
Next I
'NoMine = False
'显示每个格子 '作弊1
'Dim J As Long
'作弊2
'For I = 0 To 8
'For J = 0 To 8
'If N(I, J).IsMine Then
'N(I, J).State = 1
''SetImage I, J, 15 - N(I, J).Number
''N(I, J).IsShow = True
'End If
'Next
'Next
End Sub
Private Sub Addtion(ByVal X As Long, ByVal Y As Long, ByVal One As Long)
Dim I As Long, J As Long
For I = -1 To 1
For J = -1 To 1
If InRange(XI, YJ) And Not (I = 0 And J = 0) Then '在地图的范围内
Let N(XI, YJ).Number = N(XI, YJ).NumberOne
End If
Next
Next
End Sub
'雷区
Private Sub SetImage(ByVal X As Long, ByVal Y As Long, Optional ByVal ImgID As Long)
'每个图片宽16,高16,ImgID=0~15
Call BitBlt(Me.hdc, MLeft / Screen.TwipsPerPixelXX * BMP_GRID_WIDTH, MTop / Screen.TwipsPerPixelYY * BMP_GRID_HEIGHT, BMP_GRID_WIDTH, BMP_GRID_HEIGHT, hBmpDC(0), 0, ImgID * BMP_GRID_HEIGHT, vbSrcCopy)
End Sub
'剩余地雷和时间
Private Sub SetNumber(ByVal X As Long, ByVal Y As Long, ByVal NumID As Long, Optional ByVal nWhat As Boolean = True)
'每个数字宽13,高23,NumID=0~11
Call BitBlt(Me.hdc, X * BMP_NUM_WIDTHIIf(nWhat, BMP_NUM_MINE_LEFT, GetMePixelWidth - BMP_NUM_TIME_RIGHT), Y * BMP_NUM_HEIGHTBMP_NUM_TOP, BMP_NUM_WIDTH, BMP_NUM_HEIGHT, hBmpDC(1), 0, BMP_NUM_HEIGHT * NumID, vbSrcCopy)
End Sub
'表情
Private Sub SetFace(Optional ByVal FaceID As Long = 4)
'每个笑脸宽24,高24,NumID=0~4
Call BitBlt(Me.hdc, GetMePixelWidth / 2 - BMP_FACE_WIDTH / 2 - 1, BMP_FACE_TOP, BMP_FACE_WIDTH, BMP_FACE_HEIGHT, hBmpDC(2), 0, BMP_FACE_HEIGHT * FaceID, vbSrcCopy)
End Sub
这些只是主窗体部分代码 , 还有几个模块和窗体、相关文档,写不下你自己看附件
我想学习VB大家有没有什么好的教程,或者说提意什么的1、首先vb.net扫雷下载你要明白现在我们说的VB和VB.net的不同之处vb.net扫雷下载,VB.net常常被人称为VB7.0即对VB6的升级是不对的vb.net扫雷下载,几乎在.net中的思想已经完全改变了,VB6中是基于事件和对象的思想,而在.net中由于使用了.net框架,并且MS为了将新的编译环境与潮流接轨,面对对象在.net中尤为突出 , 用过6的朋友们都很清楚,在6中过程的思想还能运用,但是在.net中过程的思想已经完全的被OOP的思想取代了 。也许这样说你也不太明白,我用一句话来解释,就是VB6及其以前的产品是DOS时代到Windows可视化时代的一个转变,VB.Net是为建造基于因特网的分布式计算的新时代的解决方案提供基础构造的一个转变 。因此,对于目前的仍比较普遍的win32环境来讲VB.net并没有比VB6有什么进步 。
2、找本好书,然后多加练习 。我学语法用了两个星期 , 但是练习到熟练是用了大概3个月的时间 。这里我指的语法是MSDN中--》visual Basic文档--》参考中的全部内容 。
开始学习时,做一些常规联系 , 数据输入输出,文件控制 , 常用的控件使用等 。等你觉得自己有了一定功底,试试编写一下这几个windows经典的程序,如记事本,扫雷等 。这些做完以后就可以尝试做一些比较大的程序了 。
对于算法和数据结构,还有软件工程等等,这些科班经典教程,都推荐你要读一下,体会一下前辈的思想,对你的进步是很有帮助的 。
付出总有回报,坚持到底才能成功vb.net扫雷下载!有什么问题大家可以一起讨论 。
谁有VB程序下载网址VB新势力-vb下载 vb6下载 vb教程 vb源码 vb试题 vb源代码 vb控件 vb源程序 vb书籍 vb工具 vb6.0下载vb.net教程vb.net源码
测试过,可以下载
关于vb.net扫雷下载和vb 扫雷的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读