六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

玩一玩平面魔方

[摘要]回想兒時玩的魔方游戲,曾經讓我如癡如醉。那時我不分晝夜地琢磨它,并且很快就成為了小朋友中的高手,很風光啊!前幾天整理屋子的時候,竟然在一個陰暗的角落里又發現了它,玩了之后卻發現自己現在已經只有初學者的水平了。不好意思整天把它捧在手里玩,最后決定還是在電腦上玩一玩吧,因此就用VB編寫了這個程序。原想...

回想兒時玩的魔方游戲,曾經讓我如癡如醉。那時我不分晝夜地琢磨它,并且很快就成為了小朋友中的高手,很風光啊!前幾天整理屋子的時候,竟然在一個陰暗的角落里又發現了它,玩了之后卻發現自己現在已經只有初學者的水平了。不好意思整天把它捧在手里玩,最后決定還是在電腦上玩一玩吧,因此就用VB編寫了這個程序。
原想是編寫一個三維的游戲,但用VB進行三維計算過于復雜,最后決定還是根據魔方的原理,編寫一個平面二維魔方。就是在一個5×5方格的棋盤中,每一個小方格都隨機填充5種顏色中的任一顏色。并且在這25個方格中,每種顏色的方格只有5個,當用鼠標點擊其中一個方格,進行橫向或縱向拖動,同一方向方格的顏色就順序變化,如:同一方向5個方格的顏色分別為“紅(1)、綠(2)、藍(3)、黑(4)、紫(5)”,當把第二個方格(綠)拖到第四個方格(黑)的位置時,那么這5個方格的顏色的順序就變成“黑(4)、紫(5)、紅(1)、綠(2)、藍(3)”。當把各種顏色按橫向或縱向各排列成一排時,那么就完成了這個游戲。

玩一玩平面魔方

編寫這個程序在技術上沒有什么難點,關鍵的地方是在數據算法設計上,如在方格中隨機填充顏色的算法設計中,我開始是用數組來進行設計,結果發現算法有點復雜,代碼有點長,后來改用集合對象,算法就大大簡單明了了。
閑話少說,現在我們就開始編程。首先打開VB,新建一個標準工程,在form1上添加一個picturebox控件,設置picture1的autoredraw屬性為true,然后切換到代碼編輯框添加如下代碼:
'定義x1、y1為全局變量,用來表示鼠標按下時的坐標
Dim x1 As Integer
Dim y1 As Integer
'定義fill_color過程,在5*5的方格中隨機填充顏色
Sub fill_color()
    Dim color As Integer
    Dim color_col As New Collection '定義一個集合變量

    '在集合中裝載5種顏色
    For i = 0 To 24
        color_col.Add Int(i / 5), Str(i)
    Next i

    '在方格中填充顏色
    j = 0
    For n = 0 To 4
        For m = 1 To 5
            Randomize
            X = Int((25 - j) * Rnd() + 1)
            color = color_col.Item(X)
            Picture1.Line (n, m)-(n + 1, m - 1), QBColor(color), BF
            color_col.Remove (X)
            j = j + 1
        Next m
    Next n
End Sub
'定義draw過程,畫邊框為白色的方格
Sub draw()
    For n = 0 To 5
        Picture1.Line (0, n)-(5, n), QBColor(15)
        Picture1.Line (n, 0)-(n, 5), QBColor(15)
    Next n
End Sub
Private Sub Form_Activate()
    fill_color
    draw
End Sub
Private Sub Form_Load()
    Picture1.Scale (0, 5)-(5, 0)
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    x1 = Int(X)
    y1 = Int(Y)
    Picture1.MousePointer = 14
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim color1(4) As Long
    Dim x2 As Integer
    Dim y2 As Integer

    x2 = Int(X)
    y2 = Int(Y)
   
    If y1 = y2 Then
        For n = 0 To 4
            color1(n) = Picture1.Point(n + 0.5, y2 + 0.5)
        Next n

        a = x2 - x1
        For n = 0 To 4
            If n - a <= 4 And n - a >= 0 Then
                z = n - a
            Else
                z = Abs(5 - Abs(n - a))
            End If
            Picture1.Line (n, y2 + 1)-(n + 1, y2), color1(z), BF
        Next n
    Else
        If x1 = x2 Then
            For n = 0 To 4
                color1(n) = Picture1.Point(x2 + 0.5, n + 0.5)
            Next n
            a = y2 - y1
            For n = 0 To 4
                If n - a <= 4 And n - a >= 0 Then
                    z = n - a
                Else
                    z = Abs(5 - Abs(n - a))
                End If
                Picture1.Line (x2 + 1, n)-(x2, n + 1), color1(z), BF
            Next n
        Else
            MsgBox "你的移動無效", , "警告"
        End If
    End If
    draw
    Picture1.MousePointer = vbDefault
End Sub

程序比較簡單,大家一定很容易看懂,這個程序的方格我們也可以改成6*6、7*7等等,但玩起來的難度可能會大大增加,就是這個5*5方格的游戲,我有時候都很難玩通。
本程序在VB6.0+ Windows Me下調試通過。





相關文章

主站蜘蛛池模板: 四虎永久精品免费观看 | 日本高清网址 | 亚洲精品欧美精品国产精品 | 欧洲一级做a爱在线观看 | 香草影院| 天天干天天拍天天射天天添天天爱 | 欧美亚洲一区 | 亚洲五月综合网色九月色 | 在线国产日韩 | 综合欧美亚洲 | 亚洲精品乱码久久久久久中文字幕 | 亚洲综合色就色手机在线观看 | 最近最新中文字幕1页 | 色www免费视频 | 五月婷婷深深爱 | 亚洲免费色 | 青青草好吊色 | 天天看片天天干 | 四虎永久网址影院 | 日本午夜视频在线观看 | 天天爱天天做天天爽夜夜揉 | 青草青草视频 | 亚洲欧美日韩第一页 | 日韩一区二区三区免费 | 亚洲第一色站 | 亚洲成人三级 | 桃花视频在线观看免费迅雷 | 字幕网资源站中文字幕 | 日韩精品久久不卡中文字幕 | 窝窝午夜色视频国产精品东北 | 日本高清免费不卡在线 | 婷婷六月激情 | 深夜久久 | 日本高清在线播放 | 综合欧美亚洲 | 午夜性爽爽爽 | 伊人888 | 午夜爱爱毛片xxxx视频免费看 | 日本道在线观看 | 青青青久在线视频免费观看 | 人人爽天天爽夜夜爽曰 |