電腦沒設定AI!


原始碼:http://down.gogobox.com.tw/t2329175/pq2m2
程式碼:

'假裝有宣告
Dim MyX As Integer, MyY As Integer, Host As Boolean, Num As Integer
Dim Game(3, 3) As Integer, MDown As Boolean

Private Sub Form_Activate()         '傳說中的主程式拜託不要看不懂!
MsgBox "玩家是O,電腦是X", 15, ""
Fline 900, 900, 1100, 350, RGB(255, 0, 0), 0
FPrint 900, 900, 18, RGB(0, 0, 0), "玩家先"
Fline 1900, 1900, 1100, 350, RGB(0, 0, 255), 0
FPrint 1900, 1900, 18, RGB(255, 255, 255), "電腦先"
Do Until MyX > 900 And MyX < 2000 And MyY > 900 And MyY < 1250 Or MyX > 1900 And MyX < 3000 And MyY > 1900 And MyY < 2250
DoEvents
If MyX > 900 And MyX < 2000 And MyY > 900 And MyY < 1250 Then
Host = True
ElseIf MyX > 1900 And MyX < 3000 And MyY > 1900 And MyY < 2250 Then
Host = False
End If
Loop
For i = 1 To 3
    For j = 1 To 3
        Game(i, j) = 0
Next j, i
ShowNow
Do While Win = 0 And Num < 9
MDown = False
If Host = True Then
    Do Until MDown = True
    DoEvents
    Loop
    Host = False
    MDown = False
    Form1.CurrentX = 100
    Form1.CurrentY = 100
    If Game(MyX \ 1000 + 1, MyY \ 1000 + 1) = 0 Then
    Game(MyX \ 1000 + 1, MyY \ 1000 + 1) = 1
    Else
    Host = True
    End If
Else
    For i = 1 To 3
        For j = 1 To 3
        If Game(i, j) = 0 And Host = False Then
        Game(i, j) = -1
        Host = True
        End If
    Next j, i
End If
ShowNow
Num = Num + 1
Loop
If Win = -1 Then MsgBox "電腦贏了!玩家保證腦殘了。", 15, ""
If Win = 1 Then MsgBox "玩家贏,正常的。", 15, ""
If Win = 0 Then MsgBox "沒輸沒贏!你真厲害!", 15, ""
End
End Sub

Public Function Win() As Integer '判斷輸贏
Win = 0
For i = 1 To 3
    If Game(1, i) = Game(2, i) And Game(1, i) = Game(3, i) Then
    Win = Game(1, i)
    ElseIf Game(i, 1) = Game(i, 2) And Game(i, 1) = Game(i, 3) Then
    Win = Game(i, 1)
    End If
Next
If Game(1, 1) = Game(2, 2) And Game(1, 1) = Game(3, 3) Then
Win = Game(1, 1)
ElseIf Game(1, 3) = Game(2, 2) And Game(1, 3) = Game(3, 1) Then
Win = Game(1, 3)
End If
End Function

Public Sub Fline(Fx, Fy, W, H, Fcolor, Style) '畫長方形
Form1.FillColor = Fcolor
Form1.FillStyle = Style
Form1.Line (Fx, Fy)-(Fx + W, Fy + H), Fcolor, B
End Sub

Public Sub FPrint(CX, CY, FSize, Fcolor, StrName) '印字
Form1.FontSize = FSize
Form1.CurrentX = CX
Form1.CurrentY = CY
Form1.ForeColor = Fcolor
Form1.Print StrName
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '滑鼠好好按
MyX = X
MyY = Y
MDown = True
End Sub

Public Sub ShowNow()  '顯示目前狀態
Cls
Form1.ForeColor = RGB(0, 0, 0)
Form1.FillColor = RGB(0, 0, 0)
Form1.Line (0, 1000)-(10000, 1000), RGB(0, 0, 0)
Form1.Line (0, 2000)-(10000, 2000), RGB(0, 0, 0)
Form1.Line (1000, 0)-(1000, 10000), RGB(0, 0, 0)
Form1.Line (2000, 0)-(2000, 10000), RGB(0, 0, 0)
For i = 1 To 3
    For j = 1 To 3
    If Game(i, j) = 1 Then
    Form1.CurrentX = 400 + (i - 1) * 1000
    Form1.CurrentY = 400 + (j - 1) * 1000
    Form1.Print "O"
    ElseIf Game(i, j) = -1 Then
    Form1.CurrentX = 400 + (i - 1) * 1000
    Form1.CurrentY = 400 + (j - 1) * 1000
    Form1.Print "X"
    End If
Next j, i
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '你可結束的!
End
End Sub

arrow
arrow
    全站熱搜

    讓地獄深紅的天亮 發表在 痞客邦 留言(0) 人氣()