游戏开发

本类阅读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实现五子棋的人工智能4电脑算法1

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

                                                 五子棋的人工智能

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

                                                                                    作者:张宇

  六,电脑算法(1)

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

    '** 模块名称:  diannao

    '**

    '** 描述:   此程序主要执行以下功能:

    '**                 1. 初始化赋值系统。

    '**                 2. 赋值加强算法。

    '**                 3. 计算电脑和玩家的最佳攻击位。

    '**                 4. 比较电脑和玩家的最佳攻击位并决定电脑的最佳策略。

    '**                 5. 执行检查获胜函数。

    '**

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

 

    Sub diannao()

        Dim i, j, k, m, n As Integer

        Dim dc As Integer

        Dim cab As Integer

        Dim pab As Integer

        For i = 0 To 9

            For j = 0 To 9

                pscore(i, j) = 0

                cscore(i, j) = 0

            Next

        Next

        '初始化赋值数组

        ''' ********                        电脑加强算法                ********

        For i = 0 To 191

            If cflag(i) = True Then

                cab = 0

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 1 Then

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

                                cab = cab + 1

                            End If

                        End If

                    Next

                Next

                Select Case cab

                    Case 3

                        For m = 0 To 9

                            For n = 0 To 9

                                If table(m, n) = 0 Then

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

                                        cscore(m, n) = cscore(m, n) + 5

                                    End If

                                End If

                            Next

                        Next

                    Case 4

                        For m = 0 To 9

                            For n = 0 To 9

                                If table(m, n) = 0 Then

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

                                        yuandian(m * 30 + 10, n * 30 + 10)

                                        table(m, n) = 1

                                        For dc = 0 To 191

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

                                                pflag(dc) = False

                                                checkwin()

                                                Exit Sub

                                            End If

                                        Next

                                    End If

                                End If

                            Next

                        Next

                End Select

            End If

        Next

        For i = 0 To 191

            If pflag(i) = True Then

                pab = 0

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 2 Then

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

                                pab = pab + 1

                            End If

                        End If

                    Next

                Next

                Select Case pab

                    Case 3

                        For m = 0 To 9

                            For n = 0 To 9

                                If table(m, n) = 0 Then

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

                                        pscore(m, n) = pscore(m, n) + 30

                                    End If

                                End If

                            Next

                        Next

                    Case 4

                        For m = 0 To 9

                            For n = 0 To 9

                                If table(m, n) = 0 Then

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

                                        yuandian(m * 30 + 10, n * 30 + 10)

                                        table(m, n) = 1

                                        For dc = 0 To 191

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

                                                pflag(dc) = False

                                                checkwin()

                                                Exit Sub

                                            End If

                                        Next

                                    End If

                                End If

                            Next

                        Next

                End Select

            End If

        Next

        ''' ********                   电脑加强算法结束                       ********

 




相关文章

相关软件