五子棋游戏实验报告

五子棋游戏实验报告

ID:18304295

大小:2.07 MB

页数:20页

时间:2018-09-16

五子棋游戏实验报告_第1页
五子棋游戏实验报告_第2页
五子棋游戏实验报告_第3页
五子棋游戏实验报告_第4页
五子棋游戏实验报告_第5页
资源描述:

《五子棋游戏实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、五子棋游戏实验报告课程名称计算机程序设计(VB)学号姓名班级提交时间五子棋软件设计一、实验目的1.通过五子棋软件设计或者自拟题目设计,巩固本课程所学的各个章节重点知识,自拟题目的同学需尽早向教师提出自己的想法及设计方案。2.通过开发一个较大的系统,增强软件开发能力。3.通过调试系统,增强逻辑思维能力。二、实验内容1.基本要求:(1)输入两个对手名字,然后进入游戏界面。(2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15)(3)可以悔棋。(4)五子连在一起的时候能判断胜利,并且显示出胜利者的名

2、字。(5)能够将棋局的结果保存,保存该棋局结束的状态、对手名字、棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。(6)棋局能够恢复,即重新打开,打开后出现棋局结束的状态、对手名字(此功能要求用数据库和文件两种技术实现)。2.其它要求:(1)界面友好、漂亮。(2)程序尽可能无bug。(3)程序健壮性强,基本上达到无论用户如何操作,软件都不出错,都有相应的处理方法。3.设计步骤(1)首先做界面界面包括几个窗体,窗体上有相应的控件。因为需要画棋盘,所以必须有图形容器

3、,这里用picturebox框第一个窗体是登陆界面,因为玩家姓名需要在程序中不断变换,因此需要将玩家名定义成两个变量,又因为这两个变量在几个窗体中都用到,所以在模块中定义为全局变量当五子棋主界面启动之后,首先系统要自动绘制棋盘。思路:用直线绘制棋盘----直线是由点绘制的---每个点都有坐标----改变坐标系为用户坐标系用户坐标系的定义要在窗体启动时实现。(2)坐标系的两个顶点坐标的确定?考虑到五子棋15*15,确定棋盘坐标系顶点为(-8,8),(8,-8)(3)棋子的绘制与存储棋子的绘制用实心圆模式,颜

4、色为黑色及白色两种。棋子在内存中的存储方式:因为表示各个棋子的数据类型都相同,所以考虑用数组存储,因为棋盘是二维的,因此棋子用二维数组a存储。a(i,j)表示用户坐标(i,j)的棋子状态,0表示此处无棋子,1表示此处为黑子,2表示此处为白子,下棋初始时,棋盘所有位置的初始状态都为0(4)下棋子的步骤鼠标点击棋盘交叉点附近的位置,系统应实现自动识别鼠标点击位置附近的交叉点解决方法:坐标系的变换已经将棋盘交叉点坐标整数化,因此系统所需要实现的功能即是将鼠标所点击的位置坐标化为整数即可,例如将(6.2,-5.3

5、)变成(6,-5)。在交叉点上交替下黑白棋子。解决方法:定义一个逻辑数据类型变量blackwhite,该变量的值为真时下黑子,为假时下白子,每下一个棋子,该变量的值都要取反(NOT)。判断赢棋每次下子时都必须进行赢棋判断,判断的依据是5个子按照横线、竖线或斜线连成一行。解决方法:2层循环。当有一方胜利时,棋局结束,此时在棋盘上继续点击,将不再下棋。解决方法:设置一个逻辑变量wuziqi,其值为真时说明棋局没有结束,可以在棋盘上放棋子,该值为假时,说明该棋局结束,不能放棋子。(6)五子棋保存棋局思路:保存棋

6、局的功能即把内存中与棋局相关的数据(棋局名称、棋子位置、棋子颜色、棋局状态(即棋局是否结束))存入外存中,以便以后能够恢复棋局。保存的实现用两种技术实现:文件和数据库。采用数据库技术实现棋局保存:数据库设计:数据表字段:棋局名、x坐标、y坐标、该点状态值、下棋状态。每条记录表示棋盘上一个存储的点的信息。要实现用数据库保存数据,就必须使程序连接到数据库上,这里用的是data控件,通过在程序中对data控件属性的设置来连接数据库、数据表。首先判断如果输入的棋局名和当前记录的棋局名相等,说明表中有输入棋局名对应

7、的棋局信息,将其删除,判断过程是将用户输入的棋局名(字符串)从记录集(即表)的棋局字段顶端至下逐一比较在表的最后,也就是最后一条记录后加上新保存棋局的各条记录因为棋盘上空点居多,大部分点的信息为0,因此只需保存有棋子的点的信息用文件技术进行棋局保存,思路相同。(7)五子棋恢复棋局思路:首先从数据库文件中找到要恢复棋局的数据(即曾经保存的数据),然后把这些数据赋值给内存中相应的数组或者变量中,按照这些数据重新绘制棋盘和棋子,即完成了对棋局的恢复。窗体启动事件应该完成的事情:组合框中应该显示曾经保存的棋局名。

8、因为每次保存棋局时,都是将棋局所有棋子的记录添加在表的最后,因此表中关于棋局名的记录只能是类似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根据这个特点编程序取出表中不同的棋局名。具体算法:用一个字符串变量strfile初始值为空,从表的顶端向下依次移动记录指针,如果当前记录的棋局名字段和strfile不相等,说明进入另一个棋局的记录中,将该棋局记录的棋局名赋值给strfile,并加入到组合框中,一直到表中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。