游戏开发

本类阅读TOP10

·DirectX 9.0 SDK 开发包下载(April 2005)
·完成端口的深入理解及一种变态用法
·初学者的福音:游戏开发新手入门指南
·linux下编写OpenGL程序的一些准备工作
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《魔兽世界》的寻路体系和作弊原理分析
·《学VC、编游戏》重点算法解疑·再快一点
·5月新开传奇私服|6月新开传奇私服|传奇私服|新区
·《学VC、编游戏》重点算法解疑·狩猎谋生

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

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

                                                 五子棋的人工智能

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

                                                                                    作者:张宇

    四,处理鼠标事件

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

    '** 模块名称:  themousedown

    '**

    '** 描述:       此函数主要实行以下功能:

    '**                 1. 判定当前游戏标志是否有效。

    '**                 2. 将实际坐标转化成虚拟坐标。

    '**                 3. 绘制玩家的棋子。

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

    '**                 5. 执行电脑算法函数。

    '**

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

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

        If theplayflag = False Then

            Exit Sub

        End If

        '检查游戏状态是否有效

        Dim i, j As Integer

        Dim zhx, zhy As Integer

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

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

        For i = 0 To 9

            For j = 0 To 9

                If table(zhx, zhy) > 0 Then

                    Exit Sub

                End If

            Next

        Next

        '检查当前鼠标点击的格子是否有效

        Dim mycolor As Color

        Dim g As System.Drawing.Graphics

        g = PictureBox1.CreateGraphics

        mycolor = Color.White

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

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

        '绘制玩家的棋子

        table(zhx, zhy) = 2

        For i = 0 To 191

            If cwin(zhx, zhy, i) = True Then

                cflag(i) = False

            End If

        Next

        '重设电脑的获胜标志

        checkwin()

        '检查当前玩家是否获胜

        diannao()

        '调用电脑算法

    End Sub

五,获胜检查算法。

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

    '** 模块名称:  checkwin

    '**

    '** 描述:       此模块执行以下功能:

    '**                 1. 检查是否和棋。

    '**                 2. 检查电脑是否获胜。

    '**                 3. 检查玩家是否获胜。

    '**

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

    Sub checkwin()

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

        Dim ca As Integer

        Dim pa As Integer

        Dim cnormal As Integer = 0

        For i = 0 To 191

            If cflag(i) = False Then

                cnormal = cnormal + 1

            End If

        Next

        If cnormal = 190 Then

            Label1.Visible = True

            Label1.Text = "和棋,请重新开始!"

            PictureBox1.Refresh()

            theplayflag = False

            Exit Sub

        End If

        '设定和棋规则

        For i = 0 To 191

            If cflag(i) = True Then

                ca = 0

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 1 Then

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

                                ca = ca + 1

                            End If

                        End If

                    Next

                Next

                If ca = 5 Then

                    Label1.Visible = True

                    Label1.Text = "电脑获胜,请重新开始"

                    PictureBox1.Refresh()

                    theplayflag = False

                    Exit Sub

                End If

            End If

        Next

        '检查电脑是否获胜

        For i = 0 To 191

            If pflag(i) = True Then

                pa = 0

                For j = 0 To 9

                    For k = 0 To 9

                        If table(j, k) = 2 Then

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

                                pa = pa + 1

                            End If

                        End If

                    Next

                Next

                If pa = 5 Then

                    Label1.Visible = True

                    Label1.Text = "玩家获胜,请重新开始"

                    PictureBox1.Refresh()

                    theplayflag = False

                    Exit Sub

                End If

            End If

        Next

        '检查玩家是否获胜

    End Sub




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有