如果用数字来表示该矩阵,2表示钻石,1表示固定的障碍物,0表示空位置。随机生成一个m*m的矩阵在listl中显示,点击Command1按钮,按照上述要求旋转90°后的矩阵在list2 中显示。程序运行界面如图-3所示:
Constm=6
Dima(1 Tom* m) As Integer '存储矩阵状态,2代表钻石,1代表固定障碍物,0代表空格
Private Sub Form_ Load()
'生成初始矩阵保存到a数组并输出到1ist1中,代码略
End Sub
Private Sub Command1_Click()
Dim q(1 To m) As Integer '存储有效空格位置
Dim f As Integer, t As Integer, k As Integer, p As Integer
f=1:t=1:k=m
'先模拟钻石下落过程
For i=1Tom*m
If Then
q(t) = k
t=t+1
ElseIf a(k) = 1 Then
f=1:t=1
ElseIf f<>t Then,
f=f+1
a(k) =0
q(t) = k
t=t+1
End If
If k Mod m=1 Then
f=1:t=1
k=k+2*m-1
Else
k=k-1
End If
Next i
'顺时针旋转90°后输出
p=(m-1)*m+1
For i =1 To m*m
s=s+Str(a(p))
If I Mod m=0 Then
List2. AddItem s
s=””
p=
Else
p=p-m
End If
Next i
End Sub