我写过扫雷的,不完全相同,如果想要的话请给我EMail
[email protected]
[email protected]
解决方案 »
- 用VB制作半透明的窗体,同时桌面上的东西可以运用,其它程序也可以运用,急,谢谢各位!!!!!
- 如何用命令行 注册COM+组件包 包括 角色,授权,激活等
- 如何判断一个文本文件是否存在呢?
- vsprinter加上自定义菜单、工具条
- 请问异或校验如何实现
- VB的text或richtextbox中怎么得到鼠标选中的文本的位置?
- 用vb写的一个下程序,小弟水平有限,请高手注释一下,重谢!!!!
- VB高手们,请帮我一把!!
- vb连接sql server,在线等,问题解决,立刻给分
- 如何改变WebBrowser控件中字体大小和文字编码
- 在ADO的MoveComplete事件中如何判断记录是因为什么移动的
- 送分!请给我发一份html help workshop的中文详细使用说明书,马上给分!
[email protected]
MANY THANX.
Option Explicit
Dim comable As Boolean
Dim comturn As Boolean
Dim blackturn As Boolean
Dim whiteturn As Boolean
Dim comcolor As Long
Dim black As Long
Dim white As Long
Dim i As Single
Dim j As Single
Dim table(-5 To 20, -5 To 20) As Integer'用此二维数组表示棋盘'Private Sub restart()
Form_Paint
For i = 0 To 15
For j = 0 To 15
table(i, j) = 0
Next j
Next i
black = RGB(0, 0, 0)
white = RGB(255, 255, 255)
If comturn = True Then Call goes(7, 7)
End SubPrivate Sub goes(i As Single, j As Single) '电脑将子走到table(i,j)'
If comturn = True And table(i, j) = 0 Then
FillColor = comcolor
FillStyle = 0
Dim x As Single
Dim y As Single
x = i * 300 + 100
y = j * 300 + 100
Circle (x, y), 100
comturn = False
table(i, j) = 2
End If
End SubPrivate Sub about_Click()
frmAbout.Show
End SubPrivate Sub doubleman_Click()'双人'
blackturn = True
whiteturn = False
comable = False
comturn = False
restart
End SubPrivate Sub exit_Click()
Unload Me
End
End SubPrivate Sub Form_Load()
Form_Paint
comturn = True
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) '人走'
Dim a As Single
Dim b As Single
Dim m As Single
Dim n As Single
If (x - 100) Mod 300 < 150 Then
a = x - (x - 100) Mod 300
ElseIf (x - 100) Mod 300 > 150 Then
a = x + 300 - (x - 100) Mod 300
End If
If (y - 100) Mod 300 < 150 Then
b = y - (y - 100) Mod 300
ElseIf (y - 100) Mod 300 > 150 Then
b = y + 300 - (y - 100) Mod 300
End Ifi = (a - 100) / 300
j = (b - 100) / 300
If (comturn = False) And (table(i, j) = 0) Then
If blackturn = True Then
FillColor = black
Else
FillColor = white
End If
FillStyle = 0
Circle (a, b), 100
table(i, j) = 1If comable = False Then
blackturn = blackturn Xor True
End If '双人If comable = True Then
comturn = True
judgeman
comdo
judgecom
End If '人机对战End If
End Sub
Private Sub judgeman()'判断人是否获胜'
Dim i As Single
Dim j As Single
For i = 0 To 15
For j = 0 To 15
If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 1 Then
MsgBox "you win."
ElseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 1 Then
MsgBox "you win."
ElseIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 1 Then
MsgBox "you win."
ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 1 Then
MsgBox "you win."
End If
Next j
Next i
End Sub
Dim i As Single
Dim j As Single
For i = 0 To 15
For j = 0 To 15
If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 32 Then
MsgBox "sory,you fail."
ElseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 32 Then
MsgBox "sory,your fail."
ElseIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 32 Then
MsgBox "sory,you fail."
ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 32 Then
MsgBox "sory,you fail."
End If
Next j
Next i
End SubPrivate Function wantfive(i, j, k) As Boolean '定式1'
If table(i, j) = 0 And (table(i - 4, j) * table(i - 3, j) * table(i - 2, j) * table(i - 1, j) = k * k * k * k _
Or table(i - 4, j - 4) * table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1) = k * k * k * k _
Or table(i, j - 4) * table(i, j - 3) * table(i, j - 2) * table(i, j - 1) = k * k * k * k _
Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i + 3, j - 3) * table(i + 4, j - 4) = k * k * k * k _
Or table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = k * k * k * k _
Or table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = k * k * k * k _
Or table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = k * k * k * k _
Or table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = k * k * k * k _
Or table(i - 3, i) * table(i - 2, j) * table(i - 1, j) * table(i + 1, j) = k * k * k * k _
Or table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1) * table(i + 1, j + 1) = k * k * k * k _
Or table(i, j - 3) * table(i, j - 2) * table(i, j - 1) * table(i, j + 1) = k * k * k * k _
Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i + 3, j - 3) * table(i - 1, j + 1) = k * k * k * k _
Or table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i - 1, j) = k * k * k * k _
Or table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i - 1, j - 1) = k * k * k * k _
Or table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j - 1) = k * k * k * k _
Or table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i + 1, j - 1) = k * k * k * k _
Or table(i - 2, j) * table(i - 1, j) * table(i + 1, j) * table(i + 2, j) = k * k * k * k _
Or table(i-1,j-1)*table(i-2,j-2)*table(i+1,j+1)*table(i - 2, j - 2) = k * k * k * k _
Or table(i, j - 2) * table(i, j - 1) * table(i, j + 1) * table(i, j + 2) = k * k * k * k _
Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i - 1, j + 1) * table(i - 2, j + 2) = k * k * k * k _
) Then wantfive = True
End Function
Private Function wantfour(i, j, k) As Boolean'定式2'
If table(i, j) = 0 And ((table(i - 3, j) = 0 And table(i + 2, j) = 0 And table(i - 2, j) * table(i - 1, j) * table(i + 1, j) = k * k * k) _
Or (table(i - 3, j - 3) = 0 And table(i + 2, j + 2) = 0 And table(i - 2, j - 2) * table(i - 1, j - 1) * table(i + 1, j + 1) = k * k * k) _
Or (table(i, j - 3) = 0 And table(i, j + 2) = 0 And table(i, j - 2) * table(i, j - 1) * table(i, j + 1) = k * k * k) _
Or (table(i + 3, j - 3) = 0 And table(i - 2, j + 2) = 0 And table(i + 2, j - 2) * table(i + 1, j - 1) * table(i - 1, j + 1) = k * k * k) _
Or (table(i + 3, j) = 0 And table(i - 2, j) = 0 And table(i + 2, j) * table(i + 1, j) * table(i - 1, j) = k * k * k) _
Or (table(i + 3, j + 3) = 0 And table(i - 2, j - 2) = 0 And table(i + 2, j + 2) * table(i + 1, j + 1) * table(i - 1, j - 1) = k * k * k) _
Or (table(i, j + 3) = 0 And table(i, j - 2) = 0 And table(i, j + 1) * table(i, j + 2) * table(i, j - 1) = k * k * k) _
Or (table(i - 3, j + 3) = 0 And table(i + 2, j - 2) = 0 And table(i - 2, j + 2) * table(i - 1, j + 1) * table(i + 1, j - 1) = k * k * k) _
) Then wantfour = True
End Function
Private Function wantfour1(i, j, k) As Boolean'定式3'
Dim a(0 To 7) As Single
Dim n As Single
a(0) = table(i - 3, j) * table(i - 2, j) * table(i - 1, j)
a(1) = table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1)
a(2) = table(i, j - 3) * table(i, j - 2) * table(i, j - 1)
a(3) = table(i + 3, j - 3) * table(i + 2, j - 2) * table(i + 1, j - 1)
a(4) = table(i + 3, j) * table(i + 2, j) * table(i + 1, j)
a(5) = table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3)
a(6) = table(i, j + 1) * table(i, j + 2) * table(i, j + 3)
a(7) = table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3)
Dim b(0 To 7) As Single
b(0) = table(i + 1, j)
b(1) = table(i + 1, j + 1)
b(2) = table(i, j + 1)
b(3) = table(i - 1, j + 1)
b(4) = table(i - 1, j)
b(5) = table(i - 1, j - 1)
b(6) = table(i, j - 1)
b(7) = table(i + 1, j - 1)
For n = 0 To 7
If table(i, j) = 0 And b(n) = 0 And a(n) = k * k * k Then
wantfour1 = True
End If
Next n
End Function
Dim a(0 To 7) As Single
a(0) = table(i - 2, j) * table(i - 1, j)
a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
a(2) = table(i, j - 2) * table(i, j - 1)
a(3) = table(i + 2, j - 2) * table(i + 1, j - 1)
a(4) = table(i + 1, j) * table(i + 2, j)
a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
a(6) = table(i, j + 1) * table(i, j + 2)
a(7) = table(i - 1, j + 1) * table(i - 2, j + 2) If table(i, j) = 0 And ((table(i - 3, j) <> 3 - k And table(i - 3, j - 3) <> 3 - k And a(0) * a(1) = k * k * k * k) _
Or (table(i - 3, j) <> 3 - k And table(i, j - 3) <> 3 - k And a(0) * a(2) = k * k * k * k) _
Or (table(i - 3, j) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(0) * a(3) = k * k * k * k) _
Or (table(i - 3, j) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(0) * a(5) = k * k * k * k) _
Or (table(i - 3, j) <> 3 - k And table(i, j + 3) <> 3 - k And a(0) * a(6) = k * k * k * k) _
Or (table(i - 3, j) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(0) * a(7) = k * k * k * k) _
Or (table(i - 3, j - 3) <> 3 - k And table(i, j - 3) <> 3 - k And a(1) * a(2) = k * k * k * k) _
Or (table(i - 3, j - 3) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(1) * a(3) = k * k * k * k) _
Or (table(i - 3, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(1) * a(4) = k * k * k * k) _
Or (table(i - 3, j - 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(1) * a(6) = k * k * k * k) _
Or (table(i - 3, j - 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(1) * a(7) = k * k * k * k) _
Or (table(i, j - 3) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(2) * a(3) = k * k * k * k) _
Or (table(i, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(2) * a(4) = k * k * k * k) _
Or (table(i, j - 3) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(2) * a(5) = k * k * k * k) _
Or (table(i, j - 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(2) * a(7) = k * k * k * k) _
Or (table(i + 3, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(3) * a(4) = k * k * k * k) _
Or (table(i + 3, j - 3) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(3) * a(5) = k * k * k * k) _
Or (table(i + 3, j - 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(3) * a(6) = k * k * k * k) _
Or (table(i + 3, j) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(4) * a(5) = k * k * k * k) _
Or (table(i + 3, j) <> 3 - k And table(i, j + 3) <> 3 - k And a(4) * a(6) = k * k * k * k) _
Or (table(i + 3, j) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(4) * a(7) = k * k * k * k) _
Or (table(i + 3, j + 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(5) * a(6) = k * k * k * k) _
Or (table(i + 3, j + 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(5) * a(7) = k * k * k * k) _
Or (table(i, j + 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(6) * a(7) = k * k * k * k) _
) Then want231 = True
End Function
Private Function want232(i, j, k) As Boolean'定式5'
Dim b(0 To 3) As Single
b(0) = table(i - 1, j) * table(i + 1, j)
b(1) = table(i - 1, j - 1) * table(i + 1, j + 1)
b(2) = table(i, j - 1) * table(i, j + 1)
b(3) = table(i + 1, j - 1) * table(i - 1, j + 1)
If table(i, j) = 0 And ((table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And b(0) * b(1) = k * k) _
Or (table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And b(0) * b(2) = k * k) _
Or (table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(0) * b(3) = k * k) _
Or (table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And b(1) * b(2) = k * k) _
Or (table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(1) * b(3) = k * k) _
Or (table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(2) * b(3) = k * k) _
) Then want232 = True
End Function
Function want233(i, j, k) As Boolean'定式6'
Dim m As Single
Dim n As Single
Dim b(0 To 7) As Single
Dim b1(0 To 7) As Single
Dim a(0 To 7) As Single
Dim a1(0 To 7) As Single
b(0) = table(i - 1, j)
b(1) = table(i - 1, j - 1)
b(2) = table(i, j - 1)
b(3) = table(i + 1, j - 1)
b(4) = table(i + 1, j)
b(5) = table(i + 1, j + 1)
b(6) = table(i, j + 1)
b(7) = table(i - 1, j + 1)
b1(0) = table(i - 2, j)
b1(1) = table(i - 2, j - 2)
b1(2) = table(i, j - 2)
b1(3) = table(i + 2, j - 2)
b1(4) = table(i + 2, j)
b1(5) = table(i + 2, j + 2)
b1(6) = table(i, j + 2)
b1(7) = table(i - 2, j + 2)
a(0) = table(i - 2, j) * table(i - 1, j)
a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
a(2) = table(i, j - 2) * table(i, j - 1)
a(3) = table(i + 1, j - 1) * table(i + 2, j - 2)
a(4) = table(i + 1, j) * table(i + 2, j)
a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
a(6) = table(i, j + 1) * table(i, j + 2)
a(7) = table(i - 1, j + 1) * table(i - 2, j + 2)
a1(0) = table(i - 3, j)
a1(1) = table(i - 3, j - 3)
a1(2) = table(i, j - 3)
a1(3) = table(i + 3, j - 3)
a1(4) = table(i + 3, j)
a1(5) = table(i + 3, j + 3)
a1(6) = table(i, j + 3)
a1(7) = table(i - 3, j + 3)
For m = 0 To 3
For n = 0 To 7
If (b1(m) <> 3 - k And b1(m + 4) <> 3 - k And a1(n) <> 3 - k And b(m) * b(m + 4) = k * k) And n <> m And n <> m + 4 And a(n) = k * k Then
want233 = True
End If
Next n
Next m
End Function
Private Function wantthree(i As Single, j As Single, k As Single) As Boolean'定式7'
Dim a(0 To 7) As Single
Dim n As Single
a(0) = table(i - 2, j) * table(i - 1, j)
a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
a(2) = table(i, j - 2) * table(i, j - 1)
a(3) = table(i + 1, j - 1) * table(i + 2, j - 2)
a(4) = table(i + 1, j) * table(i + 2, j)
a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
a(6) = table(i, j + 1) * table(i, j + 2)
a(7) = table(i - 1, j + 1) * table(i - 2, j + 2)
For n = 0 To 7
If table(i, j) = 0 And a(n) = k * k Then
wantthree = True
End If
Next n
End Function