游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用vb.net实现五子棋的人工智能5电脑算法2

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

                          五子棋的人工智能

                                                      ———— 利用策略类AIvb.net实现五子棋

                                                                                    作者:张宇

 

六电脑算法(2)

''' ********                    赋值系统                              ********

        For i = 0 To 191

            If cflag(i) = True Then

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 0 Then

                            If cwin(j, k, i) = True Then

                                For m = 0 To 9

                                    For n = 0 To 9

                                        If table(m, n) = 1 Then

                                            If cwin(m, n, i) = True Then

                                                cscore(j, k) = cscore(j, k) + 1

                                            End If

                                        End If

                                    Next

                                Next

                            End If

                        End If

                    Next

                Next

            End If

        Next

        For i = 0 To 191

            If pflag(i) = True Then

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 0 Then

                            If pwin(j, k, i) = True Then

                                For m = 0 To 9

                                    For n = 0 To 9

                                        If table(m, n) = 2 Then

                                            If pwin(m, n, i) = True Then

                                                pscore(j, k) = pscore(j, k) + 1

                                            End If

                                        End If

                                    Next

                                Next

                            End If

                        End If

                    Next

                Next

            End If

        Next

        ''' ********                    赋值系统结束                            ********

        ''' ********                    分值比较算法                            ********

        Dim a, b, c, d As Integer

        Dim cs As Integer = 0

        Dim ps As Integer = 0

        For i = 0 To 9

            For j = 0 To 9

                If cscore(i, j) > cs Then

                    cs = cscore(i, j)

                    a = i

                    b = j

                End If

            Next

        Next

        For i = 0 To 9

            For j = 0 To 9

                If pscore(i, j) > ps Then

                    ps = pscore(i, j)

                    c = i

                    d = j

                End If

            Next

        Next

        If cs > ps Then

            yuandian(a * 30 + 10, b * 30 + 10)

            table(a, b) = 1

            For i = 0 To 191

                If pwin(a, b, i) = True Then

                    pflag(i) = False

                End If

            Next

        Else

            yuandian(c * 30 + 10, d * 30 + 10)

            table(c, d) = 1

            For i = 0 To 191

                If pwin(c, d, i) = True Then

                    pflag(i) = False

                End If

            Next

        End If

        ''' ********                    分值比较算法结束                        ********

        checkwin()

End Sub

 

七,绘制棋子

 

    '*****************************************************************************

    '** 模块名称:  yuandian

    '**

    '** 描述:   此函数主要进行电脑棋子的绘制。

    '**

    '*****************************************************************************

 

    Sub yuandian(ByVal x As Integer, ByVal y As Integer)

        Dim mycolor As Color

        Dim g As System.Drawing.Graphics

        g = PictureBox1.CreateGraphics

        Dim zhx, zhy As Integer

        zhx = Int((x - 10) / 30)

        zhy = Int((y - 10) / 30)

        mycolor = Color.Black

        Dim brush1 As System.Drawing.Brush = New SolidBrush(mycolor)

        g.FillEllipse(brush1, zhx * 30 + 10, zhy * 30 + 10, 30, 30)

    End Sub

 




相关文章

相关软件