VB游戏攻略平面魔方游戏节能
民生历史 2020-10-11 18:31 字号: 大 中 小
回想儿时玩的魔方游戏,曾经让我如痴如醉。那时我不分昼夜地琢磨它,并且很快就成为了小朋友中的高手,很风光啊!前几天整理屋子的时候,竟然在一个阴暗的角落里又发现了它,玩了之后却发现自己现在已经只有初学者的水平了。不好意思整天把它捧在手里玩,最后决定还是在电脑上玩一玩吧,因此就用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_d 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_em(X)
ne (n, m)-(n + 1, m - 1), QBColor(color), BF
color_move (X)
j = j + 1
Next m
Next n
End Sub
''定义draw过程,画边框为白色的方格
Sub draw()
For n = 0 To 5
ne (0, n)-(5, n), QBColor(15)
ne (n, 0)-(n, 5), QBColor(15)
Next n
End Sub
Private Sub Form_Activate()
fill_color
draw
End Sub
Private Sub Form_Load()
ale (0, 5)-(5, 0)
End Sub
Private Sub Pictur形成两个大盐水湖和两个大盐滩e1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x1 = Int(X)
y1 = Int(Y)
usePointer = 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) = int(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
ne (n, y2 + 1)-(n + 1, y2), color1(z), BF
Next n
Else却与科比狭路相逢p>
If x1 = x2 Then
For n = 0 To 4
color1(n) = int(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
ne (x2 + 1, n)-(x2, n + 1), color1(z), BF
Next n
Else
MsgBox "你的移动无效", , "警告"
End If
End If
draw
usePointer = vbDefault
End Sub
程序比较简单,大家一定很容易看懂,这个程序的方格我们也可以改成6*6、7*7等等,但玩起来的难度可能会大大增加,就是这个5*5方格的游戏,我有时候都很难玩通。
本程序在VB6.0+ Windows Me下调试通过。
亮甲真的能治灰指甲吗小脑大面积梗塞宝宝不消化吃什么药-
-
恩惠海南房地产市场走势基本没有改变刚需得到释
海南房地产市场走势基本没有改变 刚需得到释放6月份海口新...
2020-09-15 | 民生历史
-
-
点评久违的头排发车法拉利不容浪费的机会
点评-久违的头排发车 法拉利不容浪费的机会维特尔庆祝夺取...
2020-06-30 | 民生历史
-
-
美国主持人打赌如果骑士夺冠NBA总决赛我搭配
美国主持人打赌:如果骑士夺冠NBA总决赛 我吃翔(图)北京时间...
2020-05-29 | 民生历史
-
-
全英赛谌龙21逆转丹麦约根森2年后再度问搭配
全英赛谌龙逆转丹麦约根森 2年后再度问鼎冠军2015年羽毛球全...
2020-05-28 | 民生历史
-
-
这四个故事告诉你科比根本就是个疯子搭配
这四个故事告诉你科比根本就是个疯子湖人名宿科比布莱恩特...
2020-05-26 | 民生历史
-
-
木格镇人民政府关于开展2018年春节期间
木格镇人民政府 关于开展2018年春节期间安全生产大检查 的实...
2019-12-17 | 民生历史