计算机学院课程设计项目报告 人机对抗五子棋

举报
资源描述
时间就是金钱,效率就是生命!计算机学院课程设计项目(3)报告题 目 人 机 对 抗 五 子 棋专 业 软件工程年 级 2 0 0 3 级学 号 3103003328指 导 教 师 何 晓 桃(2007 年 1 月)目录封面.-0-1、需求分析.-2-1.1、系统结构.-2-唯有惜时才能成功,唯有努力方可成就!1.2、功能描述.2-L2.1、用户注册.-2-1.2.2、用户登陆:.3-1.2.3、主界面.-3-1.2.4、新 游 戏(菜单).4-1.2.5、打 开(菜单)与 文件列表(菜单).-4-1.2.6、保 存(菜单).4-1.2.7、退 出(菜单).-4-1 2 8、悔 棋(菜单)(由合作者:陈烁钊负责).-4-129、计算机先(菜单).-4-1210、自动下棋(菜单)(由合作者:陈巨坤负责).-4-1.2.11、关 于(菜单).-4-2、详细设计.5-2.1、数据库设计.-5-2.1.1、数据字典.5-2.2、软件开发工具及运行环境.-5-2.3、数据结构定义.5-2.4、过程与函数.-6-2.5、操作流图.9-3、单元测试.-10-3.1、测试策略.10-3.1.1、概述.-10-3.1.2、测试范围.10-3.1.3、测试人员.-10-3.1.4、测试环境.10-3.2、测试计划及方案.-11-3 2 1、用户登陆模块.11-3 2 2、用户注册模块.-11-3.2.3、棋盘界面绘制函数.12-3.2.4 初始化棋盘功能函数.-12-3.2.5 棋盘保存功能.13-3.2.6 棋盘打开功能.-13-3 2 7 保存文件浏览模块.-13-4,心得体会.-13-参考文献.-14-1、需求分析1.1、系统结构文件(菜 单)新游戏王文件列表保存十项单选菜(悔棋自动下棋关于(菜 单)/T7,退出“算机先1.2、功能描述1.2.1、用户注册由登陆界面一 点击“注册(Z)”进入用户名、密码是必填项,当用户名已被注册时,提示用户另选注册名。用户资料用A c c e s s数据库保存。数据库可设密码,只由管理员才能对数据库进行维护。(在此为检查方便,不设置密码)。1.2.2、用户登陆:用户输入已经注册成功的用户名与密码,就可以成功“进入游戏”。1.2.3、主界面当用户登陆成功,进入到主界面时,游戏自动开始,由计算机先下第一步。主界面包括三个主菜单项,由菜单选项可进行不同功能的操作。1.2.4、新 游 戏(菜单)开始一个新的游戏,在“选项”菜单中,若“计算机先”被选中,则由计算机先下第一步,若未选中,则由玩家走第一步。1.2.5、打 开(菜单)与 文 件 列 表(菜单)打开原先保存好的棋盘文件,该文件由数据库表中读取。若不存在文件,则会提示。1.2.6、保 存(菜单)些菜单即保存正在进行中的棋盘,存入数据库表中。当单击此菜单,会要求你输入保存的文件名,此名实际为数据库表的名。若已存在已保存的文件名,则提示覆盖。1.2.7、退 出(菜单)退出整个系统。1.2.8、悔 棋(菜单)(由合作者:陈烁钊负责)玩家与计算机各后退一步棋子。若已经有一方取胜,则不能再悔棋。1.2.9、计 算 机 先(菜单)控制是计算机先走第一步还是玩家先走。当这选项被选中,则由计算机先走。1.2.10、自动下棋(菜单)(由合作者:陈巨坤负责)即由计算机与计算机根据“人工智能算法(由合作者:陈烁钊设计)”,自动进行对抗演示。当一方胜利,被连在一起的五个棋子会一直闪烁,此由时间控件(TTimer)实现。1.2.11、关 于(菜单)弹出个信息框,显示系统作者。2、详细设计2.1、数据库设计本数据库系统采用MS Access数据库2.1.1、数据字典用户表:用于存储用户名与密码Users:Name文本 NOT NULLUNIQUE/*用户名*/Password文本/*用户密码*/保存棋盘的表,这个表由用户在保存棋盘时动态创建,表名也由用户自己指定:字段结构为:X文本/*棋盘的横坐标值*/y文本/*棋盘的纵坐标值*/tablecount文本 NOT NULL/*用于记录当前x,y位置是由计算机下的棋还是玩家,若 为1,则表示是玩家走的棋,若 为2则为计算机走的棋*/2.2、软件开发工具及运行环境程序设计工具:Delphi 7操作系统:W IN D O W S XP软件开发辅助工具:M S Visio2.3、数据结构定义注:我负责的部分为:新游戏”菜单、“打开”菜单、“保存”菜单,“计 算 机 先“菜单、用户注册、登陆,数据库。Table:arrayO.19,0.19of byte;棋盘,即棋盘横 0-19 共 20 格,纵也是 0-19共2 0格,当值为0时表示相应位置无棋子shanshuo:boolean;用于闪烁处理,当 为tru e时棋子闪烁finish:Boolean;比赛是否结束,当 为tru e时,此局结束,false开始新的一局saveX:array0.1000 of integer;用于记录每一步棋的 x 值s a v e Y:a r r a y 0.1 0 0 0 of i nt e g e r;用于记录每一步的 y 值s a v e T a b l e:a r r a y 0.1 0 0 0 of i nt e g e r;用于记录每一步棋是计算机下的还是玩家下的,若是计算机下则值为1、若为玩家下的则为2s a v e C ou nt:i nt e g e r;全局变量,用于控制前两个数组的下标增长2.4、过程与函数p r oc e d u r e S t a r t;初始化,清空棋盘所有棋子,即把t a b l e i,j 的所有值置为0v a ri,j:b y t e;b e g i nf i ni s h:=f a l s e;m:=0;f or i:=0 t o 1 9 d of or j:=0 t o 1 9 d ot a b l e E i,j :=0;S h a nS h u ot i m e r.E na b l e d:=f a l s e;s h a ns h u o:=f a l s e;N 3.E na b l e d:=f a l s e;B u t t on2.E na b l e d:=N 3.E na b l e d;d r a w t a b l e;e nd;p r oc e d u r e D r a w T a b l e;画棋盘v a ri,j:b y t e;b u f:t b i t m a p;b e g i nf or i :=1 t o 2 1 d o 每一个单元格的大小是2 5*2 5b e g i nb u f.c a nv a s.M ov e T o(i*2 5,2 5);/单元格的边线从(2 5,2 5)位置开始画b u f.c a nv a s.L i ne T o(i*2 5,5 2 5);end;for i:=1 to 21 dobeginbuf.canvas.MoveTo(25,i*25);buf.canvas.LineTo(525,i*25);end;for i:=0 to 19 dofor j:=0 to 19 dobegincase tablei,j of 由tablei,j的值决定画笔的颜色1:buf.canvas,pen.Color:=clblack;白棋,即计算机所下的棋2:buf.canvas,pen.Color:=clwhite;黑棋,即玩家所下的棋0:buf.canvas,pen.Color:=rgb(100,200,0);end;buf.canvas.Ellipse(i*25+35,j*25+35,i*25+40,j*25+40);end;canvas.Draw(0,0,buf);从窗体的(0,0)点位显示图End;procedure Computer;电脑下棋,此为人工智能算法部分,由合作者陈烁钊负责function IsWin(show:boolean):boolean;是否有一方胜利,由合作者陈巨坤负责procedure TMainForm.N8Click(Sender:TObject);保存文件功能,利用到 ADO 连接数据库的技术vari:integer;saveTableName:string;TableList:TStringList;c h ec k i nput:b ool ea n;b eg i nTa b l eLi st:=TStri ng Li st.Crea te;ADOConnec ti onl.GetTa b l eNa m es(Ta b l eLi st);i f Ta b l eLi st.Ind exOf(sa veTa b l eNa m e)-1 th en提示用户用户表已存在b eg i ni f Messa g eDl g(,已 存 在 一 个 同 名 文 件,是 否 覆 盖 掉?,m tConf i rm a ti on,m b Yes,m b No,0)=6 th enb eg i nADOConnec ti onl.Exec ute(DROP TABLE J+sa veTa b l eNa m e+,;ADOConnec ti onl.Exec ute(?CREATE TABLE J+sa veTa b l eNa m e+,(xva rc h a r(5 0),y va rc h a r(5 0),ta b l ec ountva rc h a r(5 0););ADOQueryl.Cl ose;ADOQueryl.SQL.Cl ea r;ADOQueryl.SQL.Ad d(sel ec t*f rom J+sa veTa b l eNa m e+,;ADOQueryl.Open;f or i:=0 to sa veCount-1 d ob eg i nADOQueryl.Append;ADOQueryl.Fi el d ByNa m e(,x).Va l ue:=InttoStr(sa veXi);ADOQueryl.Fi el d ByNa m e(,y).Va l ue:=InttoStr(sa veYi);ADOQueryl.Fi el d ByNa m e(J ta b l ec ountJ.Va l ueInttoStr(sa veTa b l ei);ADOQueryl.Post;end;Sh owMessa g e(保存成功!);ADOQueryl.Cl ose;end;End;proc ed ure TMa i nForm.N7Cl i c k(Send er:TOb j ec t);打开文件,与保存采用相同技术proc ed ure TForm 4.Li stBoxl Db l Cl i c k(Send er:TOb j ec t);文件列表,与打开一 样 的技术,用到了 Li stBox控件2.5、操作流图3、单元测试3.1、测试策略3.1.1、概述本产品是基于数据库的单机版五子棋人机对抗软件,开发时间为两周,由三个人共同完成。本人负责主要部分是:打开、保存、数据库设计、棋盘界面绘制函数、登陆、注册、控制谁先走棋,初始化棋盘函数,及帮助人工智能算法设计(主要由合作者陈烁钊负责)。3.1.2、测试范围本测试计划是针对 五子棋功能需求中规定内容的测试计划,包括:用户登陆模块用户注册模块棋盘界面绘制函数初始化棋盘功能函数数据库设计棋盘保存功能棋盘打开功能保存文件浏览模块谁先走棋功能菜单3.1.3、测试人员蔡远君3.1.4、测试环境硬件:(CPU)AMD Sempron(tm)Processor 2500+1.40GHz(内存)768M SDRAM(硬盘)80G软件:Windows XP Professional SP2;Borland Delphi Enterprise 7.0;Microsoft Access 2003;3.2、测试计划及方案3.2.1、用户登陆模块即点击按
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号