亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? winmine.cls

?? visual basic課程設(shè)計案例精編
?? CLS
?? 第 1 頁 / 共 3 頁
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = 0   'False
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "clsWinMine"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

' 設(shè)置鼠標(biāo)左鍵常數(shù)
Private Const LEFT_BUTTON As Byte = 1

' 標(biāo)明空格的標(biāo)記
Private Const NONE As Byte = 0
' 標(biāo)明帶有地雷的方格的標(biāo)記
Private Const MINE As Byte = 243
' 標(biāo)明已經(jīng)被打開的方格的標(biāo)記
Private Const BEEN As Byte = 244
' 標(biāo)明已經(jīng)被標(biāo)定為有地雷的方格的標(biāo)記
Private Const FLAGGED As Byte = 2
' 標(biāo)明不明確方格的標(biāo)記
Private Const QUESTION As Byte = 1

' 最大、最小的地雷數(shù)、行數(shù)、列數(shù)
Private Const MIN_MINES As Byte = 10
Private Const MAX_MINES As Byte = 99
Private Const MIN_ROWS As Integer = 8
Private Const MAX_ROWS As Integer = 24
Private Const MIN_COLS As Integer = 8
Private Const MAX_COLS As Integer = 36

' 方格的寬度
Private Const mintButtonWidth As Byte = 16
' 方格的高度
Private Const mintButtonHeight As Byte = 16

' 現(xiàn)在游戲難度的地雷總數(shù)
Private mbytNumMines As Byte
' 被正確標(biāo)明為帶有地雷的方格的數(shù)目
Private mbytCorrectHits As Byte
' 已被標(biāo)明的空格總數(shù)(包括錯誤標(biāo)記的)
Private mbytTotalHits As Byte

' 現(xiàn)在游戲難度的行數(shù)和列數(shù)
Private mintRows As Integer
Private mintCols As Integer

' 正在被執(zhí)行的行數(shù)和列數(shù)
Private mintRow As Integer
Private mintCol As Integer

' 表明一個新游戲的時間
Public mblnNewGame As Boolean
' 表明一個鼠標(biāo)點擊動作正在執(zhí)行
Private mblnHitTestBegun As Boolean
' 控制總顯示格數(shù)的變量
Private mfrmDisplay As Form
Private mbytMineStatus() As Byte

' 動態(tài)的2D隊列,用來跟蹤一個方格的現(xiàn)在狀態(tài)
' 是否被標(biāo)記,或者是否被標(biāo)記正確
Private mbytMarked() As Byte

' 動態(tài)的2D隊列,用來跟蹤一個含有地雷的方格的行數(shù)和列數(shù)
Private mbytMineLocations() As Byte

Private mcolWrongLocations As New Collection

Public Sub BeginHitTest(intButton As Integer, intX As Single, intY As Single)
    
    ' 如果現(xiàn)在的游戲結(jié)束,開始新的游戲
    ' 當(dāng)?shù)乩讌^(qū)被點擊
    If mblnNewGame Then
        NewGame
    End If
    
    ' 表明鼠標(biāo)點擊動作正在執(zhí)行
    mblnHitTestBegun = True
    
    ' 通過鼠標(biāo)的坐標(biāo)確定實際方格的坐標(biāo)
    intX = Int(intX / mintButtonWidth)
    intY = Int(intY / mintButtonHeight)

    ' 如果坐標(biāo)位于游戲界面外邊,則取消
    If intX >= mintCols Or intY >= mintRows Or intX < 0 Or intY < 0 Then
        Exit Sub
    End If

    ' 通過柵格坐標(biāo)確定空格坐標(biāo)
    mintCol = intX * mintButtonWidth
    mintRow = intY * mintButtonHeight

    ' 如果方格已點開,則取消
    If mbytMineStatus(intY, intX) >= BEEN Then Exit Sub

    Dim blnLeftDown As Boolean
    blnLeftDown = (intButton And LEFT_BUTTON) > 0

    ' 如果鼠標(biāo)左鍵點擊...
    If blnLeftDown Then
        
        ' 如果方格已經(jīng)標(biāo)記了,不能打開,則取消
        If mbytMarked(intY, intX) >= FLAGGED Then Exit Sub
        
        ' 臨時圖形顯示控制
        If mbytMarked(intY, intX) = QUESTION Then
            mfrmDisplay.imgPressed.Visible = False
            mfrmDisplay.imgQsPressed.Visible = False
            mfrmDisplay.imgQsPressed.Left = mintCol
            mfrmDisplay.imgQsPressed.Top = mintRow
            mfrmDisplay.imgQsPressed.Visible = True
        Else
            mfrmDisplay.imgQsPressed.Visible = False
            mfrmDisplay.imgPressed.Visible = False
            mfrmDisplay.imgPressed.Left = mintCol
            mfrmDisplay.imgPressed.Top = mintRow
            mfrmDisplay.imgPressed.Visible = True
        End If
        
    Else    '如果鼠標(biāo)右鍵點擊....
        
        Dim Msg As String
        Dim CRLF As String

        CRLF = Chr$(13) & Chr$(10)
        
        Select Case mbytMarked(intY, intX)
    
            Case NONE:      ' 如果所有的空格都被標(biāo)注...
                            If mbytTotalHits = mbytNumMines Then
                                Msg = "Can't Mark Any More Mines!" & CRLF
                                Msg = Msg & "One or more Mines have been wrongly marked." & CRLF
                                Msg = Msg & "UnMark one or more mines with the right mouse button."
                                    
                                MsgBox Msg, vbCritical, "WinMine: Error!"
                                Exit Sub
                            End If
                                    
                            ' 如果沒有標(biāo)注,顯示一個標(biāo)記表示標(biāo)注
                            mfrmDisplay.PaintPicture mfrmDisplay.imgFlag, mintCol, mintRow
                            ' 增加已被標(biāo)注的方格數(shù)量
                            mbytTotalHits = mbytTotalHits + 1

                            ' 更新剩余地雷的顯示
                            mfrmDisplay.lblMinesLeft = "Mines Left : " & mbytNumMines - mbytTotalHits
                            
                            ' 如果正確標(biāo)記
                            If mbytMineStatus(intY, intX) = MINE Then
                                mbytCorrectHits = mbytCorrectHits + 1
                                mbytMarked(intY, intX) = FLAGGED
                            Else    ' 如果錯誤標(biāo)記
                                Dim objCoords As New clsCoords
                                    
                                ' 在新文件中存儲錯誤標(biāo)記的坐標(biāo)
                                objCoords.mintX = intX
                                objCoords.mintY = intY
                                    
                                ' 將它加入到收集
                                mcolWrongLocations.Add objCoords
                                
                                ' 存儲被錯誤標(biāo)注的方格的總數(shù)
                                mbytMarked(intY, intX) = mbytTotalHits - mbytCorrectHits + 2
                            End If
                                
                            ' 如果所有的地雷都被正確標(biāo)注...
                            If mbytCorrectHits = mbytNumMines Then
                                Msg = "Congratulations!" & CRLF
                                Msg = Msg & "You have won." & CRLF
                                
                                MsgBox Msg, vbInformation, "WinMine"
                                
                                ' 準(zhǔn)備新游戲
                                mblnNewGame = True
                            End If
            
            Case QUESTION:  ' 如果模糊標(biāo)注,則不標(biāo)注
                            mbytMarked(intY, intX) = NONE
                            ' 顯示原始方格
                            mfrmDisplay.PaintPicture mfrmDisplay.imgButton, mintCol, mintRow

            Case Else:      ' 如果以前用“紅旗”標(biāo)注,則更改為空標(biāo)注
                            ' 顯示用“?”標(biāo)注的方格
                            mfrmDisplay.PaintPicture mfrmDisplay.imgQuestion, mintCol, mintRow
                            
                            ' 減少已標(biāo)注方格的總數(shù)
                            mbytTotalHits = mbytTotalHits - 1
                                
                            ' 更新剩余地雷的顯示
                            mfrmDisplay.lblMinesLeft = "Mines Left : " & mbytNumMines - mbytTotalHits
                            
                            ' 如果以前標(biāo)注的方格含有地雷
                            If mbytMineStatus(intY, intX) = MINE Then
                                ' 同時減少正確標(biāo)注的方格數(shù)目
                                mbytCorrectHits = mbytCorrectHits - 1
                            Else    ' 如果是錯誤的標(biāo)注方格
                                ' 取消這個錯誤的坐標(biāo)
                                mcolWrongLocations.Remove mbytMarked(intY, intX) - 2
                                    
                                Dim intXwm As Integer   ' 錯誤地點的X坐標(biāo)
                                Dim intYwm As Integer   ' 錯誤地點的Y坐標(biāo)
                                Dim i As Integer        ' 循環(huán)計算
                                    
                                ' 更新其它錯誤標(biāo)注的坐標(biāo)指數(shù)
                                For i = mbytMarked(intY, intX) - 2 To mcolWrongLocations.Count
                                    intXwm = mcolWrongLocations(i).mintX
                                    intYwm = mcolWrongLocations(i).mintY
                                    mbytMarked(intYwm, intXwm) = mbytMarked(intYwm, intXwm) - 1
                                Next
                                    
                            End If

                            mbytMarked(intY, intX) = QUESTION
                
        End Select
    
    End If

End Sub

Public Sub EndHitTest(intButton As Integer, intX As Single, intY As Single)
    
    ' 如果正在執(zhí)行一個鼠標(biāo)的點擊動作.
    If mblnHitTestBegun Then
        ' 重新設(shè)置標(biāo)記
        mblnHitTestBegun = False
    Else
        ' 如果不是,則取消
        ' 當(dāng)鼠標(biāo)被點擊
        Exit Sub
    End If
    
    Dim blnLeftDown As Boolean
    blnLeftDown = (intButton And LEFT_BUTTON) > 0

    '  如果鼠標(biāo)左鍵被點擊
    If blnLeftDown Then
        
        '通過鼠標(biāo)的坐標(biāo)確定方格的坐標(biāo)
        intX = Int(intX / mintButtonWidth)
        intY = Int(intY / mintButtonHeight)

        ' 如果坐標(biāo)位于游戲界面外,則取消
        If intX >= mintCols Or intY >= mintRows Or intX < 0 Or intY < 0 Then
            Exit Sub
        End If

        ' 如果當(dāng)前點擊的方格已被標(biāo)注,則取消
        If mbytMarked(intY, intX) >= FLAGGED Then Exit Sub

        ' 通過鼠標(biāo)坐標(biāo)確定方格坐標(biāo)
        intX = mintCol \ mintButtonWidth
        intY = mintRow \ mintButtonHeight
    
        If mbytMarked(intY, intX) = QUESTION Then
            mfrmDisplay.imgQsPressed.Visible = False
        Else
            mfrmDisplay.imgPressed.Visible = False
        End If
        
        Select Case mbytMineStatus(intY, intX)

            Case Is >= BEEN:    ' 如果當(dāng)前的方格已被打開,則取消
                                Exit Sub
            
            Case NONE:  ' 如果當(dāng)前的方格是空的,則打開周圍所有的空方格
                        OpenBlanks intX, intY
                        
            Case MINE:  ' 如果當(dāng)前的空格含有地雷,則引爆地雷
                        Dim intXm As Integer        ' 地雷的X坐標(biāo)
                        Dim intYm As Integer        ' 地雷的Y坐標(biāo)
                        Dim vntCoord As Variant     ' 每個循壞使用的變量
                        Dim i As Integer            ' 循環(huán)計數(shù)
                
                        ' 展示所有包含地雷的方格
                        For i = 0 To mbytNumMines - 1
                            
                            intYm = mbytMineLocations(i, 0)
                            intXm = mbytMineLocations(i, 1)

                            If mbytMarked(intYm, intXm) < FLAGGED Then
                                mfrmDisplay.PaintPicture mfrmDisplay.imgMine, intXm * mintButtonWidth, intYm * mintButtonHeight
                            End If
                        
                        Next

                        ' 用一個爆炸的地雷顯示現(xiàn)在的方格
                        mfrmDisplay.PaintPicture mfrmDisplay.imgBlown, mintCol, mintRow
                        
                        ' 顯示所有被錯誤的確定為地雷的方格
                        For Each vntCoord In mcolWrongLocations

                            intYm = vntCoord.mintY
                            intXm = vntCoord.mintX

                            mfrmDisplay.PaintPicture mfrmDisplay.imgWrongMine, intXm * mintButtonWidth, intYm * mintButtonHeight
                        
                        Next
                        
                        ' 準(zhǔn)備新游戲
                        mblnNewGame = True
                        

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成亚洲人成在线观看图片 | 国产麻豆91精品| 亚洲欧洲国产日韩| 日韩一区二区三| 99久久精品国产毛片| 久久精品国产77777蜜臀| 一区二区三区自拍| 国产校园另类小说区| 欧美一区二区三区白人| 91亚洲精品久久久蜜桃| 国产91精品精华液一区二区三区| 午夜影院久久久| 中文字幕一区二区三区在线播放 | 7777精品伊人久久久大香线蕉| 成人激情午夜影院| 国产乱码精品一区二区三| 丝袜亚洲另类丝袜在线| 亚洲精品自拍动漫在线| 国产精品无人区| 久久久久久久久久久黄色| 日韩视频中午一区| 欧美日韩国产在线播放网站| 色欲综合视频天天天| 国产精选一区二区三区| 另类欧美日韩国产在线| 日韩精品1区2区3区| 一级特黄大欧美久久久| 亚洲男人的天堂在线aⅴ视频| 中文字幕巨乱亚洲| 国产精品水嫩水嫩| 国产欧美日韩一区二区三区在线观看 | 国产成人aaa| 韩日欧美一区二区三区| 老司机免费视频一区二区三区| 日韩精品久久理论片| 亚洲一本大道在线| 天天色综合成人网| 日本美女一区二区| 麻豆国产一区二区| 久久激情五月婷婷| 国产一区欧美日韩| 国产91丝袜在线18| 丁香婷婷综合色啪| 不卡一区二区在线| 日本高清不卡一区| 欧美日韩一区 二区 三区 久久精品| 欧美在线不卡一区| 欧美日韩午夜精品| 91 com成人网| 久久久亚洲欧洲日产国码αv| 久久久久99精品一区| 国产欧美一区二区精品仙草咪| 中文av字幕一区| 亚洲日本va在线观看| 亚洲一区中文日韩| 青青草国产精品亚洲专区无| 国产麻豆精品95视频| 成人午夜av在线| 日本韩国一区二区三区| 91精品黄色片免费大全| 久久久精品一品道一区| 国产精品美女www爽爽爽| 亚洲一区二区三区在线播放 | 91麻豆精东视频| 欧美网站一区二区| 日韩你懂的在线播放| 中文字幕不卡在线| 亚洲一区二区三区视频在线播放| 日韩精品福利网| 国产精品91一区二区| 99re热视频精品| 欧美日本视频在线| 久久久久久久久久看片| 亚洲男同性视频| 另类人妖一区二区av| 99久久99久久精品免费观看| 欧美日韩国产大片| 久久嫩草精品久久久精品| 亚洲精品一二三区| 看片的网站亚洲| 99v久久综合狠狠综合久久| 欧美日韩精品一区二区三区蜜桃| 精品99一区二区| 亚洲一区二区三区在线| 国产精品综合视频| 欧美人伦禁忌dvd放荡欲情| 久久先锋影音av鲁色资源网| 亚洲精品免费在线| 国产一区二区三区蝌蚪| 欧美在线不卡视频| 国产精品无遮挡| 免费观看久久久4p| 一本大道av伊人久久综合| 精品少妇一区二区三区免费观看 | 在线观看精品一区| 精品久久久久一区二区国产| 亚洲专区一二三| 顶级嫩模精品视频在线看| 91精品国产综合久久婷婷香蕉| 最新日韩av在线| 国产精品一区久久久久| 欧美人成免费网站| 亚洲精品免费在线观看| 国产成人av一区二区三区在线观看| 欧美美女网站色| 一区二区三区**美女毛片| 国产成人精品亚洲777人妖| 日韩欧美在线综合网| 亚洲图片有声小说| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲国产精品久久久男人的天堂| 成人午夜免费av| 国产亚洲精品中文字幕| 精品制服美女丁香| 91麻豆精品国产91久久久久久久久 | 中文字幕中文字幕一区| 国产成人福利片| 久久久噜噜噜久久人人看| 免费成人在线视频观看| 欧美精品日韩综合在线| 夜夜嗨av一区二区三区四季av| 9l国产精品久久久久麻豆| 国产情人综合久久777777| 国产综合久久久久久久久久久久| 欧美成人激情免费网| 肉肉av福利一精品导航| 欧美老人xxxx18| 日本不卡不码高清免费观看| 678五月天丁香亚洲综合网| 亚洲成人免费av| 欧美四级电影网| 亚洲地区一二三色| 欧美在线三级电影| 午夜精品在线视频一区| 欧美日韩国产一二三| 亚洲综合无码一区二区| 欧美视频日韩视频| 日韩极品在线观看| 日韩欧美国产麻豆| 国产一区二三区| 国产亚洲精品aa午夜观看| 国产成人亚洲综合a∨猫咪| 国产欧美日韩精品a在线观看| 成人av在线看| 玉足女爽爽91| 欧美日韩情趣电影| 日韩国产欧美三级| 欧美成人精品1314www| 国产乱子伦一区二区三区国色天香| 欧美tickling网站挠脚心| 狠狠色狠狠色综合系列| 国产婷婷色一区二区三区在线| 成人天堂资源www在线| 中文字幕亚洲一区二区av在线| 在线一区二区视频| 日韩精品电影一区亚洲| 久久亚洲影视婷婷| 99天天综合性| 午夜日韩在线观看| 欧美成人精品二区三区99精品| 高清不卡一二三区| 亚洲精品亚洲人成人网| 91精品国产综合久久香蕉麻豆 | 7777精品伊人久久久大香线蕉| 久久99久久精品欧美| 欧美激情综合网| 欧美性感一区二区三区| 麻豆精品视频在线观看视频| 欧美高清在线精品一区| 欧美日韩免费观看一区二区三区| 久久激五月天综合精品| 中文字幕日韩av资源站| 欧美日韩国产综合久久| 国产一区二区在线免费观看| 亚洲私人黄色宅男| 日韩欧美国产综合一区| 91蝌蚪porny| 免费观看成人av| 亚洲精品日日夜夜| 欧美va亚洲va| 欧美在线一区二区三区| 国产麻豆精品theporn| 亚洲图片有声小说| 国产清纯在线一区二区www| 欧美日韩国产免费一区二区| 粉嫩av一区二区三区在线播放| 亚洲成人av免费| 中文字幕日韩精品一区| 精品乱人伦小说| 精品视频一区三区九区| 成人动漫在线一区| 捆绑调教美女网站视频一区| 亚洲自拍偷拍欧美| 亚洲国产成人在线| 欧美刺激午夜性久久久久久久| 91成人在线精品| 国产在线精品免费| 日本vs亚洲vs韩国一区三区| 亚洲精品视频免费看| 中文字幕免费一区|