展会信息港展会大全

VB.NET实现五子棋的人工智能(2)
来源:互联网   发布日期:2011-09-19 10:48:03   浏览:5890次  

导读:四,处理鼠标事件‘‘模块名称:themousedown‘‘描述:此函数主要实行以下功能:‘1.判定当前游戏标志是否有效。‘2.将实际坐标转化成虚拟...

四,处理鼠标事件‘‘模块名称:themousedown‘‘描述:此函数主要实行以下功能:‘1.判定当前游戏标志是否有效。‘2.将实际坐标转化成虚拟坐标。‘3.绘制玩家的棋子。‘4.执行检查获胜函数。‘5.执行电脑算法函数。‘‘SubthemousedownIftheplayflag=FalseThenExitSubEndIf‘检查游戏状态是否有效Dimi,jAsIntegerDimzhx,zhyAsIntegerzhx=Int/30)zhy=Int/30)Fori=0To9Forj=0To9Iftable>0ThenExitSubEndIfNextNext‘检查当前鼠标点击的格子是否有效DimmycolorAsColorDimgAsSystem.Drawing.Graphicsg=PictureBox1.CreateGraphicsmycolor=Color.WhiteDimbrush1AsSystem.Drawing.Brush=NewSolidBrushg.FillEllipse‘绘制玩家的棋子table=2Fori=0To191Ifcwin=TrueThencflag=FalseEndIfNext‘重设电脑的获胜标志checkwin‘检查当前玩家是否获胜diannao‘调用电脑算法EndSub五、获胜检查算法。‘‘模块名称:checkwin‘‘描述:此模块执行以下功能:‘1.检查是否和棋。‘2.检查电脑是否获胜。‘3.检查玩家是否获胜。‘‘SubcheckwinDimi,j,k,m,nAsIntegerDimcaAsIntegerDimpaAsIntegerDimcnormalAsInteger=0Fori=0To191Ifcflag=FalseThencnormal=cnormal+1EndIfNextIfcnormal=190ThenLabel1.Visible=TrueLabel1.Text="和棋,请重新开始!"PictureBox1.Refreshtheplayflag=FalseExitSubEndIf‘设定和棋规则Fori=0To191Ifcflag=TrueThenca=0Forj=0To9Fork=0To9Iftable=1ThenIfcwin=TrueThenca=ca+1EndIfEndIfNextNextIfca=5ThenLabel1.Visible=TrueLabel1.Text="电脑获胜,请重新开始"PictureBox1.Refreshtheplayflag=FalseExitSubEndIfEndIfNext‘检查电脑是否获胜Fori=0To191Ifpflag=TrueThenpa=0Forj=0To9Fork=0To9Iftable=2ThenIfpwin=TrueThenpa=pa+1EndIfEndIfNextNextIfpa=5ThenLabel1.Visible=TrueLabel1.Text="玩家获胜,请重新开始"PictureBox1.Refreshtheplayflag=FalseExitSubEndIfEndIfNext‘检查玩家是否获胜EndSub六、电脑算法‘‘模块名称:diannao‘‘描述:此程序主要执行以下功能:‘1.初始化赋值系统。‘2.赋值加强算法。‘3.计算电脑和玩家的最佳攻击位。‘4.比较电脑和玩家的最佳攻击位并决定电脑的最佳策略。‘5.执行检查获胜函数。‘‘SubdiannaoDimi,j,k,m,nAsIntegerDimdcAsIntegerDimcabAsIntegerDimpabAsIntegerFori=0To9Forj=0To9pscore=0cscore=0NextNext‘初始化赋值数组‘‘‘电脑加强算法Fori=0To191Ifcflag=TrueThencab=0Forj=0To9Fork=0To9Iftable=1ThenIfcwin=TrueThencab=cab+1EndIfEndIfNextNextSelectCasecabCase3Form=0To9Forn=0To9Iftable=0ThenIfcwin=TrueThencscore=cscore+5EndIfEndIfNextNextCase4Form=0To9Forn=0To9Iftable=0ThenIfcwin=TrueThenyuandiantable=1Fordc=0To191Ifpwin=TrueThenpflag=FalsecheckwinExitSubEndIfNextEndIfEndIfNextNextEndSelectEndIfNextFori=0To191Ifpflag=TrueThenpab=0Forj=0To9Fork=0To9Iftable=2ThenIfpwin=TrueThenpab=pab+1EndIfEndIfNextNextSelectCasepabCase3Form=0To9Forn=0To9Iftable=0ThenIfpwin=TrueThenpscore=pscore+30EndIfEndIfNextNextCase4Form=0To9Forn=0To9Iftable=0ThenIfpwin=TrueThenyuandiantable=1Fordc=0To191Ifpwin=TrueThenpflag=FalsecheckwinExitSubEndIfNextEndIfEndIfNextNextEndSelectEndIfNext‘‘‘电脑加强算法结束‘赋值系统Fori=0To191Ifcflag=TrueThenForj=0To9Fork=0To9Iftable=0ThenIfcwin=TrueThenForm=0To9Forn=0To9Iftable=1ThenIfcwin=TrueThencscore=cscore+1EndIfEndIfNextNextEndIfEndIfNextNextEndIfNextFori=0To191Ifpflag=TrueThenForj=0To9Fork=0To9Iftable=0ThenIfpwin=TrueThenForm=0To9Forn=0To9Iftable=2ThenIfpwin=TrueThenpscore=pscore+1EndIfEndIfNextNextEndIfEndIfNextNextEndIfNext‘‘‘赋值系统结束‘‘‘分值比较算法Dima,b,c,dAsIntegerDimcsAsInteger=0DimpsAsInteger=0Fori=0To9Forj=0To9Ifcscore>csThencs=cscorea=ib=jEndIfNextNextFori=0To9Forj=0To9Ifpscore>psThenps=pscorec=id=jEndIfNextNextIfcs>psThenyuandiantable=1Fori=0To191Ifpwin=TrueThenpflag=FalseEndIfNextElseyuandiantable=1Fori=0To191Ifpwin=TrueThenpflag=FalseEndIfNextEndIf‘‘‘分值比较算法结束checkwinEndSub七、绘制棋子‘‘模块名称:yuandian‘‘描述:此函数主要进行电脑棋子的绘制。‘‘SubyuandianDimmycolorAsColorDimgAsSystem.Drawing.Graphicsg=PictureBox1.CreateGraphicsDimzhx,zhyAsInteger

赞助本站

人工智能实验室

相关热词: .net 算法 电脑 赋值 玩家 函数

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港