四,处理鼠标事件‘‘模块名称: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
VB.NET实现五子棋的人工智能(2)
来源:互联网 发布日期:2011-09-19 10:48:03 浏览:6493次
相关内容
AiLab云推荐
最新资讯
本月热点
- 2025年,人形机器人行业将迎来“百机大战”
- 阿里云通义开源首个多模态推理模型,OpenAI入局人形机器人 | 蓝媒GPT
- “克隆阿尔法”仿生机器人明年开放预订,拥有合成器官、人造肌肉
- 中国科大研发“章鱼”触手机器人 能抓取任意物体
- 科瑞思:正在初步研究人形机器人领域空心线圈绕线机和空心杯电机项目
- 中国机器狗交付新加坡电网,开拓海外能源场景应用
- 量产元年将至?人形机器人2025年展望:产业扩张期蕴藏哪些新机
- 国金证券:当前为人形机器人量产前夕,机器人产业有望迎来集中催化,建议重点关注
- 机构预测前景广阔,人形机器人将于2026迎来量产元年?
- 马斯克机器人蒙眼户外溜达,45°斜坡跑着下!还差点脚滑了
热门排行
-
不被“机器狗之父”看好的人形机器人,未来要如何发展?
阅读量:72958
-
国产版达芬奇手术机器人价格跳水,是价格战要来了吗?
阅读量:68076
-
借势智元机器人,富临精工跨界入局人形机器人,准备好了吗?
阅读量:43994
-
实探全球首个核电灯塔工厂,这里有各式各样的机器人 | 碳访
阅读量:41994
-
美团再投人形机器人公司宇树科技,80亿估值能否撑起“中国版Figure AI”?|钛媒体AGI
阅读量:7019
-
我国新增工业机器人装机量占全球一半以上,券商:海外拓展寻求新增长点
阅读量:6012