首页 VB6.0五子棋代码

VB6.0五子棋代码

举报
开通vip

VB6.0五子棋代码...PAGE/NUMPAGESVB实验结课报告——五子棋班级:旅121:梦涵学号:121352实验题目:五子棋软件设计实验要求:1.基本要求:(1)输入两个对手名字,然后进入游戏界面。(2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15)(3)可以悔棋。(4)五子连在一起的时候能判断胜利,并且显示出胜利者的名字。(5)能够将棋局的结果保存,保存该棋局完毕的状态、对手名字、棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。(6)棋局能够恢复,即重...

VB6.0五子棋代码
...PAGE/NUMPAGESVB实验结课 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 ——五子棋班级:旅121:梦涵学号:121352实验题目:五子棋软件 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 实验要求:1.基本要求:(1)输入两个对手名字,然后进入游戏界面。(2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15)(3)可以悔棋。(4)五子连在一起的时候能判断胜利,并且显示出胜利者的名字。(5)能够将棋局的结果保存,保存该棋局完毕的状态、对手名字、棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。(6)棋局能够恢复,即重新打开,打开后出现棋局完毕的状态、对手名字(此功能要求用数据库和文件两种技术实现)。2.其它要求:(1)界面友好、漂亮。(2)程序尽可能无bug。(3)程序健壮性强,基本上达到无论用户如何操作,软件都不出错,都有相应的处理方法。实验目的:1.通过五子棋软件设计或者自拟题目设计,巩固本课程所学的各个章节重点知识,自拟题目的同学需尽早向教师提出自己的想法与设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。2.通过开发一个较大的系统,增强软件开发能力。3.通过调试系统,增强逻辑思维能力。设计日期:2013年12月4日完成日期:2013年12月26日实验体会:通过对五子棋软件设计的编程完毕,我所体会到的不仅是关于这个软件给我带来的感受,还有对于这个课的感触。其实在一开始看到课表安排上游vb的时候就觉得,我们一个文科专业为什么要学编程?随着课程的开展老师确实是从零基础一点一点细心的教起,有些例子程序若是班里人明白的少老师就会多讲几遍直到大家都听明白了为止,并且上课的时候并不是老师自己讲自己的,而是时不时的就会关心全班是否真的都在认真听课,并且能够真正的关心到“边缘同学”,但是尽管是在这样的情况下,我偶尔也会开开小差,课后实验也会稍稍参考一下同学的代码,就是这样有问题没有与时的弄明白导致最后在编五子棋代码时,出现了许多问题。其实在当初老师让在自拟题目和五子棋当中选择一个作为结课作业的时候,我最开始想选择的是自拟题目,因为我觉得这样可以得到高一点的分数,但是再说了两个题目都被老师说不太适宜之后我便选回了五子棋,现在想想当初真的是自己想太多了,光想到成绩,没有想到自己是不是有那么高的实力,以为就算自己上课听得不是特别的认真,但是上网找找别人的代码自己再根据 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 本和老师的课件便能理解了然后编出自己的代码。但事实并非如此,在老师给了大部分五子棋代码并且讲解过后,还是出了好多问题的我来说,还好当初没选自拟题目。下面我说一说对于五子棋软件设计的感受。既然决定了制作五子棋,于是就每节理论课都跟着老师的思路走,认真听,为了可以抄清楚老师的代码和防止自己在开小差坐在第一排。老师首先讲的是关于Form1和Form2的制作,同时讲那两个窗体的过程中告诉了我们一个如果使用的这个定义变量过多的话便在模块里面定义。还讲了棋盘的画法,以与赢棋判断的其中一种。当时在抄代码,听思路的时候没觉得什么难度,但是当第二天自己真正上机的时候问题就一个一个的来了。Form1的制作并没有什么特别大的难度,主要问题都出在了Form2上。首先是数组定义的类型不认识,所以为什么这么定义就不了解,于是再去查课件,查书找清楚每一个代表什么意思,然后再看这些变量在代码中的那些位置,就慢慢地能明白为什么这么定义了。当然寻找变量一行一行读代码的过程中也会发现自己不明白的专业名词,又不知具体在书上的那些地方,就上网找。终于总算还算顺利的读下来了。但还没有轻松多久另一个难题就又来了,关于赢棋判断的另外三个方向。一开始竖着的判断时很简单,因为我以为只要像横着的一样把x坐标和y坐标调换一下就可以了,但是当做到斜着的方向判断时x坐标y坐标同时改变时便不知道如何改变了。先是照着老师的循环变量更改,因为只要定义两个变量就可以了,但是当运行之后却告诉我循环已经用过了,然后我自己读代码又不看不出有什么错误,我便去问老师,老师说循环语句写错了,不是嵌套的给写成嵌套格式了。改过之后,我问老师是不是调换一下坐标就能把斜的也做出来,老师说不是这样的,你要先了解我为什么这么写循环,然后要是循环不理解的话写列举法也行。我当时就想列举法要写好多点,代码肯定看起来不如循环的看上去简便。于是我开始拿了一纸在上面分别写了好几组横着、竖着、斜着怎样是赢棋的坐标,然后找到其中的规律再结合这老师前面给的循环,发现自己明白了点。一种斜着的是x坐标y坐标的变换方式是同加同减的,另一种是一个加一个减的。既然规律找到了,那么下一难关就是循环变量的围,在这中我试过把两个都用一个围,后来发现不行,于是我便先试其中一种斜着的我试过0to4然后写坐标的的加减变换,然后发现不行,于是我把加减变换调换了一下发现还是不行,老师提示我超标线。所以我就换了个围终于在试到4to0step-1是成功了,所以我就想这个围是不是在同加同减的那种形式下也可以呢?但是试过后发现又是超标,然后我就想到两个的起点坐标不一样是不是围应该取值对称一下,于是0to-4step-1成功了。终于就这样我在制作五子棋的过程中的第一大难题攻克了。接下来随着老师讲的逐渐深入,自己也与时理解还不算太过困难。但是在棋局库哪里却出了问题,代码没有问题,但是数据库就是打不开,后来询问老师,老师也找了半天没有找出问题所在,便让我再重新建立个数据库或者换个电脑,但是试过之后还是不行,于是我便去找老师,终于在老师的细心寻找下,终于找到了问题所在,没有把数据库改成该有的格式。在这两个我认为在编程中遇到的两大问题的过后,尽管还是遇见了很多小问题,但还是解决了,老师要求我们自己做到的功能,再仔细研读老师的代码后也完成了。但是在这一切还比较顺利的过程中也出了个小插曲,就是在最后一节上机课前,我给优盘杀了个小病毒,结果就最后一次码代码的时候发现,以前编的部分代码缺失,不过还好不是全都没了还是能很快补了回来的。幸亏老师在之前提醒过这种情况的发生,我先把代码做了备份,要不就真的又是一个大 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 了。最后我想说的是尽管这真的是一个编程的课程,但是它教给我们的不仅仅是代码,不仅仅是如何制作软件。就像老师说的那样它交给我们的是解决问题如何思考的方式,如何抓住问题的根本,遇到问题应该勇于找解决方法。就像在编程的过程中遇到不会的问题不能理解的名词,就要与时的查书,上网查,和与时的问老师,当然其中不乏有一些因为上课你没有特别的认真听而问出的一些特别基础的问题,但是老师都一一的细心解答了。我觉得老师交给我们的这些不仅仅能用在这节课上,还可以用在其余的课程以与今后的道路上,所以在这里很感老师。以上就是我所有关于五子棋以与关于这个课的体会、感受。全部界面:游戏最开始玩家输入游戏开始与赢棋判断保存棋局库打开棋局库保存棋局文件打开棋局文件悔棋全部代码:Modulel(全局变量)Publicwanjia1AsStringPublicwanjia2AsStringPublicblackwhiteAsBooleanPublicwuziqiAsBooleanPublica(-11To11,-11To11)AsIntegerDimiAsIntegerDimjAsIntegerDimcountblackAsIntegerDimcountwhiteAsIntegerPublicSubpaint()countblack=0countwhite=0Form2.Picture1.ClsFori=-7To7Form2.Picture1.Line(-7,i)-(7,i),QBColor(0)Form2.Picture1.Line(i,-7)-(i,7),QBColor(0)NextForm2.Picture1.FillStyle=0Fori=-7To7Forj=-7To7Ifa(i,j)=1ThenForm2.Picture1.FillColor=QBColor(0)Form2.Picture1.Circle(i,j),0.3,QBColor(0)countblack=countblack+1EndIfIfa(i,j)=2ThenForm2.Picture1.FillColor=QBColor(15)Form2.Picture1.Circle(i,j),0.3,QBColor(15)countwhite=countwhite+1EndIfNextNextIfcountblack=countwhiteThenblackwhite=TrueElseblackwhite=FalseEndIfIfblackwhite=TrueThenForm2.Label1.Caption="该黑方"+wanjia1+"走"ElseForm2.Label1.Caption="该白方"+wanjia2+"走"EndIfEndSubForm1:PrivateSubCommand1_Click()IfTrim(Text1.Text)=""OrTrim(Text2.Text)=""ThenMsgBox"请输入"ExitSubEndIfwanjia1=Text1.Textwanjia2=Text2.TextForm2.ShowUnloadMeEndSubForm2:DimmAsSingleDimnAsSingleDimx0AsSingleDimy0AsSingleDimshubiaoAsIntegerPrivateSubCommand1_Click()Label1.Caption="该黑方"+wanjia1+"走"blackwhite=Truewuziqi=TruePicture1.ClsFori=-7To7Picture1.Line(-7,i)-(7,i),QBColor(0)Picture1.Line(i,-7)-(i,7),QBColor(0)NextFori=-11To11Forj=-11To11a(i,j)=0NextNextEndSubPrivateSubCommand2_Click()Form3.ShowEndSubPrivateSubCommand3_Click()Form4.ShowEndSubPrivateSubCommand4_Click()CommonDialog1.Filter="*.wzq|*.wzq"CommonDialog1.Action=2OpenCommonDialog1.FileNameForOutputAs#1Print#1,wuziqiFori=-7To7Forj=-7To7Ifa(i,j)<>0ThenPrint#1,iPrint#1,jPrint#1,a(i,j)Print#1,wanjia1Print#1,wanjia2EndIfNextNextClose#1EndSubPrivateSubCommand5_Click()Fori=-7To7Forj=-7To7a(i,j)=0NextNextCommonDialog1.Filter="*.wzq|*.wzq"CommonDialog1.Action=1OpenCommonDialog1.FileNameForInputAs#1LineInput#1,strwuziqiwuziqi=CBool(strwuziqi)DoWhileNotEOF(1)LineInput#1,striLineInput#1,strjLineInput#1,straLineInput#1,strw1LineInput#1,strw2a(Val(stri),Val(strj))=Val(stra)LoopClose#1CallpaintEndSubPrivateSubCommand6_Click()Ifwuziqi=TrueThena(m,n)=0CallpaintEndIfEndSubPrivateSubForm_Load()Form2.Picture1.Scale(-8,8)-(8,-8)shubiao=0EndSubPrivateSubPicture1_mousedown(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)shubiao=1x0=xy0=yIfCInt(x)>=-7AndCInt(x)<=7AndCInt(y)>=-7AndCInt(y)<=7Andwuziqi=TrueThenm=CInt(x)n=CInt(y)Picture1.FillStyle=0Ifblackwhite=TrueAnda(CInt(x),CInt(y))=0ThenPicture1.FillColor=QBColor(0)Picture1.Circle(CInt(x),CInt(y)),0.3,QBColor(0)a(CInt(x),CInt(y))=1Label1.Caption="该白方"+wanjia2+"走"blackwhite=NotblackwhiteEndIfIfblackwhite=FalseAnda(CInt(x),CInt(y))=0ThenPicture1.FillColor=QBColor(15)Picture1.Circle(CInt(x),CInt(y)),0.3,QBColor(15)a(CInt(x),CInt(y))=2Label1.Caption="该黑方"+wanjia1+"走"blackwhite=NotblackwhiteEndIfFori=CInt(x)-4ToCInt(x)Ifa(i,CInt(y))=1Anda(i+1,CInt(y))=1Anda(i+2,CInt(y))=1Anda(i+3,CInt(y))=1Anda(i+4,CInt(y))=1ThenMsgBox"黑方胜利"wuziqi=FalseExitSubEndIfIfa(i,CInt(y))=2Anda(i+1,CInt(y))=2Anda(i+2,CInt(y))=2Anda(i+3,CInt(y))=2Anda(i+4,CInt(y))=2ThenMsgBox"白方胜利"wuziqi=FalseExitSubEndIfNextForj=CInt(y)-4ToCInt(y)Ifa(CInt(x),j)=1Anda(CInt(x),j+1)=1Anda(CInt(x),j+2)=1Anda(CInt(x),j+3)=1Anda(CInt(x),j+4)=1ThenMsgBox"黑方胜利"wuziqi=FalseExitSubEndIfIfa(CInt(x),j)=2Anda(CInt(x),j+1)=2Anda(CInt(x),j+2)=2Anda(CInt(x),j+3)=2Anda(CInt(x),j+4)=2ThenMsgBox"白方胜利"wuziqi=FalseExitSubEndIfNextFori=4To0Step-1Ifa(CInt(x)-i,CInt(y)+i)=1Anda(CInt(x)-i+1,CInt(y)+i-1)=1Anda(CInt(x)-i+2,CInt(y)+i-2)=1Anda(CInt(x)-i+3,CInt(y)+i-3)=1Anda(CInt(x)-i+4,CInt(y)+i-4)=1ThenMsgBox"黑方胜利"wuziqi=FalseExitSubEndIfIfa(CInt(x)-i,CInt(y)+i)=2Anda(CInt(x)-i+1,CInt(y)+i-1)=2Anda(CInt(x)-i+2,CInt(y)+i-2)=2Anda(CInt(x)-i+3,CInt(y)+i-3)=2Anda(CInt(x)-i+4,CInt(y)+i-4)=2ThenMsgBox"白方胜利"wuziqi=FalseExitSubEndIfNextForj=0To-4Step-1Ifa(CInt(x)-j-4,CInt(y)-j-4)=1Anda(CInt(x)-j-3,CInt(y)-j-3)=1Anda(CInt(x)-j-2,CInt(y)-j-2)=1Anda(CInt(x)-j-1,CInt(y)-j-1)=1Anda(CInt(x)-j,CInt(y)-j)=1ThenMsgBox"黑方胜利"wuziqi=FalseExitSubEndIfIfa(CInt(x)-j-4,CInt(y)-j-4)=2Anda(CInt(x)-j-3,CInt(y)-j-3)=2Anda(CInt(x)-j-2,CInt(y)-j-2)=2Anda(CInt(x)-j-1,CInt(y)-j-1)=2Anda(CInt(x)-j,CInt(y)-j)=2ThenMsgBox"白方胜利"wuziqi=FalseExitSubEndIfNextEndIfEndSubForm3DimrcountAsIntegerDimiAsIntegerDimjAsIntegerPrivateSubCommand1_Click()WithData1.DatabaseName=App.Path+"\wzq.mdb".RecordSource="保存棋局表".RefreshIfTrim(Text1.Text)=""ThenMsgBox"棋局名不能为空"ExitSubEndIfIf.Recordset.RecordCount>0Then.Recordset.MoveLastFori=1TorcountIf.Recordset.Fields("棋局名")=Text1.TextThen.Recordset.DeleteEndIfIfNot.Recordset.EOFThen.Recordset.MoveNextEndIfNextEndIfFori=-7To7Forj=-7To7Ifa(i,j)<>0Then.Recordset.AddNew.Recordset.Fields("棋局名")=Text1.Text.Recordset.Fields("x坐标")=i.Recordset.Fields("y坐标")=j.Recordset.Fields("该点状态值")=a(i,j).Recordset.Fields("下棋状态")=wuziqi.Recordset.Fields("玩家1")=wanjia1.Recordset.Fields("玩家2")=wanjia2.Recordset.UpdateEndIfNextNextUnloadMeEndWithEndSubForm4PrivateSubCommand1_Click()Fori=-7To7Forj=-7To7a(i,j)=0NextNextWithData1.DatabaseName=App.Path+"\wzq.mdb".RecordSource="保存棋局表".RefreshIf.Recordset.RecordCount>0Then.Recordset.MoveLastrcount=.Recordset.RecordCount.Recordset.MoveFirstFori=1TorcountIf.Recordset.Fields("棋局名")=Combo1.TextThena(.Recordset.Fields("x坐标"),.Recordset.Fields("y坐标"))=.Recordset.Fields("该点状态值")EndIfIfNot.Recordset.EOFThen.Recordset.MoveNextEndIfNext.Recordset.MoveFirstFori=1TorcountIf.Recordset.Fields("棋局名")=Combo1.TextThenwuziqi=.Recordset.Fields("下棋状态")ExitForEndIfIfNot.Recordset.EOFThen.Recordset.MoveNextEndIfNextEndIfEndWithCallpaintUnloadMeEndSubPrivateSubForm_Load()Combo1.Text="请选择打开棋局名称"strfile=""WithData1.DatabaseName=App.Path+"\wzq.mdb".RecordSource="保存棋局表".RefreshIf.Recordset.RecordCount>0Then.Recordset.MoveLastrcount=.Recordset.RecordCount.Recordset.MoveFirstFori=1TorcountIf.Recordset.Fields("棋局名")<>strfileThenstrfile=.Recordset.Fields("棋局名")Combo1.AddItemstrfileEndIfIfNot.Recordset.EOFThen.Recordset.MoveNextEndIfNextEndIfEndWithEndSub
本文档为【VB6.0五子棋代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
liyxi2018
暂无简介~
格式:doc
大小:253KB
软件:Word
页数:17
分类:其他高等教育
上传时间:2022-05-27
浏览量:0