擬似マインスイーパー
任意の地雷を設置するというプログラムです。
この中で地雷を*に、安全地帯を空白にしたいのですがやり方がわからないので、わかる方お願いします。
Sub mine()
Dim minefield(11, 13) As Integer
Dim i As Integer, a As Integer, b As Integer
Dim c As Integer
c = InputBox("地雷の数を決めます")
Randomize
For i = 1 To c
a = Int(Rnd * 10) + 1
b = Int(Rnd * 12) + 1
If minefield(a, b) = 9 Then i = i - 1
minefield(a, b) = 9
Next i
countMine minefield, 10, 12
showInt minefield, 10, 12
' show minefield, 10, 12
End Sub
Sub countMine(f() As Integer, h As Integer, w As Integer)
Dim i As Integer, j As Integer
Dim a As Integer, b As Integer
Dim x As Integer
For a = 1 To 10
For b = 1 To 12
If f(a, b) < 9 Then
x = 0
If f(a, b - 1) = 9 Then x = x + 1 '左に地雷があるか
If f(a, b + 1) = 9 Then x = x + 1 '右に地雷があるか
' ... この部分に追加したいのだが ...
f(a, b) = x
End If
Next b
Next a
End Sub
Sub showInt(f() As Integer, h As Integer, w As Integer)
Dim i As Integer
Const a As Integer = 7
Const b As Integer = 3
Do While h > 0
For i = 1 To w
Cells(a + h, b + i) = f(h, i)
Next i
h = h - 1
Loop
End Sub
補足
Pic2はPictureボックスですよね? >そうです。ピクチャーボックスです。 プロパティのところのIndex値には数値が入ってますか? >数字が入っていませんでした。数字を入れたら動くようになりました。 適切なお返事ありがとうございました。これからもよろしくお願いいたします。