XXXX大学
动态网页设计课程设计(论文)
题目:网络版五子棋游戏
院(系):
专业班级:
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
程序设计专题(报告)任务及评语
院(系):教研室:
学号学生姓名专业班级
程序设计
(报告)
题目
网络版五子棋游戏
程
序
设
计
(
报
告
)
任
务
程序设计专题的任务与要求:
(1)掌握JSP编程、面向对象的基础知识。
(2)较熟练地编写基于JSP技术的动态网页。
(3)了解JSP的内置对象、Bean、Servlet编程等编程技术。
(4)联系已学过的内容,巩固所学的理论,增强独立工作能力。
(5)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
力都有一个很大的提高。
(6)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素
质的提高起一个积极的推动作用。
(7)课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指
导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指
导
教
师
评
语
及
成
绩
成绩:指导教师签字:
2013年12月23日
辽宁工业大学课程设计说明书(论文)
目录
第1章实训的目的与要求....................................................1
1.1实训设计目的........................................................1
1.2实训设计的实验环境..................................................1
1.3实训设计的预备知识..................................................1
1.4实训设计要求........................................................1
第2章实训设计内容........................................................2
2.1开发背景简述........................................................2
2.2系统设计内容........................................................2
2.3需求分析............................................................2
2.3.1系统逻辑设计..................................................3
2.3.2系统功能需求分析..............................................9
2.4系统实现...........................................................10
2.4.1系统的详细设计...............................................10
2.4.3程序源代码...................................................12
2.5测试分析...........................................................16
第3章实训总结............................................................17
参考资料..................................................................18
辽宁工业大学课程设计说明书(论文)
1
第1章实训的目的与要求
1.1实训梶浦由记 设计目的
《动态网页设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专
业学生学习完《JAVA程序设计》及《动态网页设计》等课程后,进行的一次全面的综合
训练,JSP动态网页设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系
统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所
学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2实训设计的实验环境
硬件要求能运行Windows2000操作系统的微机系统。JSP动态网页设计语言及相应
的集成开发环自我描述简历 境:J2SDK和ECLIPSE开发工具及Tomcat服务器。
1.3实训设计的预备知识
熟悉JAVA语言及ECLIPSE开发工具、Tomcat服务器。
1.4实训设计要求
按JSP动态网页设计的设计指导书提供的课题,要求学生在自行完成各个操最强病毒 作环节,
并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深
入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地
理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JSP动态
网页设计的基本技能和面向对象的概念和方法编程技术。同时培养学生进行分析问题、
解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观
察、理解和归纳能力的提高。
辽宁工业大学课程设计说明书(论文)
2
第2章实训设计内容
2.1开发背景简述
随着计算机技术和互联网的飞速发展,游戏软件是当今世界发展最迅速,最有影响
力,最有潜力与活力的领域之一。电脑游戏的出现为人们提供了新的娱乐平台,丰富了人
们的业余生活。因此与游戏有关的软件深受广大青少年的喜爱。随着近几年来软件技术
的不断进步、不断发展,软件游戏的操作要求越来越简单,大多数游戏普通人学几分钟
就能会玩,甚至连老年人也慢慢爱上了它。
而五子棋游戏的诞生更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢
玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。现
在网络上出现了各种各样的五子棋软件,有大师级的、新手级的等等。所有这些都满足了
不同人群的需要,所以当前五子棋越来越被许多人所熟悉。目前的五子棋程序的发展也非
常快,从最初的双人发展到人机(有AI),然后到现在的网络对战,已经受到越来越多人
的喜爱和重视。
2.2系统设计内容
五子棋不仅能增强思维能力,提高记忆力,而且富含哲理,有助于修身养性。五子
棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它
既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;
它的棋文化源时间状语有哪些 渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”
的连接。它是中西文化的交流点,是古今哲理的结晶。
五子棋游戏不但容易上手,而且它区别于别的游戏,它不但能使人娱乐,而且能使
人的头脑变得更加聪明。而五子棋对战有两种模式:一.人机对战;二.双人对战。这些
给人无限乐趣的用途正是人工智能的杰作。正因为这样它鼓励着人们对它不断研究,这
在很大程度上促进了人工智能的发展,反过来人工智能的理论和技术上的突破能够使五
子棋程序更完美、更受欢迎!
同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各
地的人们知道五子棋,随时地玩上五子棋,这已经不再是梦想了。五子棋游戏程序使得
越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。随着互联网
辽宁工业大学课程设计说明书(论文)
3
络的不断普及,越来越多的人可以在网络上就能够与他人下五子棋了。
此五子棋程序基本功能如下:
1.显示一个十五行十五列的五子棋棋盘。
2.用鼠标点击棋盘上的交叉点处,则会准确地在该位置显示出棋子。
3.玩家为黑方先下棋,可以从天元(指棋盘的中心点,该点颜色够深,容易看出来)先
落子,也可以从其它地方下子貔貅的传说 ,电脑为白方。
4.可以自动判断游戏是否结束,是否黑方或者是白方已经胜利,并且跳出对话框来
提示玩家。
5.在游戏棋盘上方会有一个游戏信息,这个游戏信息是用来提示当前是黑白双方的
哪一方下子,玩家可以根据这个提示来下棋,而不会导致不清楚轮到哪一方下棋。
6.可以重新开始游戏,并且有认输功能,在下棋时如果玩家点击认输按钮,则给出
提示“玩家认输,电脑赢!”。
7.本五子棋有相应的提示功能,对玩家的一些错误的操作给出一定的提示,比如误
点击有棋子的棋盘交叉点。
2.3需求分析
2.3.1系统逻辑设计
游戏主要内容为双人联机对战,游戏只支持对战功能,不能进行单机游戏。界面比
较简单,但是棋盘大小设计的比较灵活和人性化,可以根据不同手机屏幕自动调整大小。
玩家使用四个方向键的上下左右来移动落子的位置,移动到空白位置使用确定按钮
来落子。为简单起见,游戏不涉及悔棋,棋盘采用默认尺寸为15*15,并且客户端先下。
在游戏逻辑方面没有人工智能,只有“判赢”算法。
经过对系统的分析,我们将系统划分出了用户信息、用户棋局信息、用户棋盘信息、
用户下棋信息等几个实体,其各个实体的属性如下:
用户信息:用户名、用户密码、用户权限
用户棋局信息:用户名、棋局编号、棋局创建时间
用户棋盘信息:棋局编号、X轴坐标、Y轴坐标、棋子状态
用户下棋信息:棋局编号、用户X坐标、用户Y坐标、电脑X坐标、电脑Y坐标
本系统的具体ER模型如下:
辽宁工业大学课程设计说明书(论文)
4
用户
用户密
码
用户名用户权
限
棋局
棋局编
号
创建时
间
创
建
棋盘
X
轴
坐
标
Y
轴
坐
标
棋
子
状
态
下棋
属
于
属于
用户X坐
标
用户Y坐
标
电脑X坐
标
电脑X坐
标
1N
1
N
1
1
每步棋编
号
棋局
用户
名
棋局编
号
创建时
间
图2-1整体ER图
图2-2棋局ER图
辽宁工业大学课程设计说明书(论文)
5
用户
用户名
用户密
码
用户权
限
图2-5用户ER图
下棋
棋局编
号
用户Y坐
标用户X坐
标
电脑X坐
标
电脑X坐
标
棋盘
棋局编
号
X轴坐
标
Y轴坐
标
棋子状
态
图2-3用户棋盘ER
图2-4用户棋盘ER
辽宁工业大学课程设计说明书(论文)
6
本系统的数据库设计如下:
1.系统用户表
名称编码数据类型备注
用户名urNamevarchar(255)
用户输入,Notnull
约束,是表的主键
用户密码urPwdvarchar(255)
用户输入,Notnull
约束
用户权限urFlagInt(11)
系统分配,Notnull
约束,用于判断用
户权限
2.用户棋局表
名称编码数据类型备注
棋局编号dishIdInt(11)
系统自动分配,是
该表的主键,Not
null约束
用户名urNamevarchar(255)
用户输入,Notnull
约束
创建时间playDateDate
系统分配,Notnull
约束
3.用户棋盘表
名称编码数据类型备注
棋局编号dishIdInt(11)
系统自动分配,是
改变的主键,Not
null约束
X轴坐标XInt(11)
是棋盘的X坐标,
Notnull约束
辽宁工业大学课程设计说明书(论文)
7
Y轴坐标YInt(11)
是棋盘的Y坐标,
Notnull约束
状态FInt(11)
表示棋子状态,Not
null约束
4.用户下棋信息表
名称编码数据类型备注
下棋编号stepIdInt(11)
系统自动分配,是
改变的主键,Not
null约束
电脑X坐标pcXInt(11)
是电脑山西为什么叫山西 该步棋的X
坐标,Notnull约
束
电脑Y坐标pcYInt(11)
是电脑该步棋的Y
坐标,Notnull约
束
用户X坐标psXInt(11)
是电用户该步棋的
X坐标,Notnull
约束
用户Y坐标psYInt(11)
是电用户该步棋的
X坐标,Notnull
约束
棋局编号dishIdInt(11)
是该表的外键,Not
null约束
本系统的设计思路如下:
1.本程序要实现五子棋的游戏功能,必须先有一个棋盘,所以,通过html中的表格
画的,棋盘是17*17,表格中是一个层,通过改变其背景图片来表示有无棋子,是白棋
还是黑棋。另外还有一个按钮:悔棋按钮,用于提供悔棋功能,界面还显示系统时间,
用户提示用户当前时间。
辽宁工业大学课程设计说明书(论文)
8
2.对于下棋的操作,通过对该层鼠标事件监听器onclick,每次当用户点击鼠标时,
先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。
3.判断此处是否已经有棋子,如果有则用javascript提示玩家重新下子,否则通过
ajax把点击的数组传递给后台,通过后台处理返回给前台数据来改变样式,在此处画上
棋子。
4.判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜,不是
的话,更换玩家下棋。
5.对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则会变换
玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序结束。
用户前
注册登录
数
据
显
示
五
子
棋
棋
盘
回
放
悔
棋
游
戏
图2-6系统结构图
辽宁工业大学课程设计说明书(论文)
9
2.3.2系统功能需求分析
此系统为智力游戏,适合于各类游戏爱好者。由于其经典性及其游戏的简单性,各
类人士都可以也都爱玩。人们在与电脑对战享受娱乐的同时,也会体会到自己的智力也
会有所提升。
该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需
要电脑能准确的计算棋局。虽然系统不大,但要在满足玩家的基本要求的情况下,电脑
有一定的智能,能给于新手一定的帮助。
用户登录注册:在玩五子棋之前,用户要先登录游戏,未注册的用户应该先注册,
如果登录成功会跳到用户管理页面,登录信息错误会提示密码用户名错误。
人机对弈模式:选择该模式可以实现人与电脑之间的对弈,电脑会智能的选择该在
哪处下子,并会在每次下棋结束后判断是否有哪方已经获胜,如果获胜则结束本局游戏,
并提示玩家游戏结束。
悔棋功能:这个功能也是根据游戏的实际需求而存在的,在现实生活中难免有失误
下错了棋,那么就需要悔棋。此功能提供了悔棋功能,使得下棋的灵活性有所提高。玩
家若想悔棋,则只需选择悔棋按钮便可以重新下过刚才的棋,但只能悔一步棋。
棋局回放功能:这个功能是更加用户需求设计的,该功能可以回放用户以前下过的
棋局只要点击要回放的棋局,进入棋局回放页面,点击下一步就可以回放该棋局,点一
下只能回放一步棋。
五子棋游
戏
用
户
登
录
注
册
人
机
对
弈
模
式
具
有
悔
棋
功
能
棋
局
回
放
功
能
图2-7五子棋功能模块图
辽宁工业大学课程设计说明书(论文)
10
2.4系统实现
2.4.1系统的详细设计
用户登录注册:在玩五子棋之前,用户要先登录游戏,未注册的用户应该先注册,如果
登录成功会跳到用户管理页面,登录信息错误会提示密码用户名错误。
事件
用户下子
用户胜出
游戏结
电脑下子
电脑胜出
否
是
否
是
图2-8用户玩游戏流
辽宁工业大学课程设计说明书(论文)
11
用户登录
登录失败
辽宁工业大学课程设计说明书(论文)
12
用户注册
2.4.3程序源代码
登陆后检验用户的源代码如下:
<%@pagelanguage="java"import=".*"pageEncoding="utf-8"%>
<%@pageimport="foDaoImpl"%>
<%@pageimport=".*"%>
<%@pageimport=".*"%>
<%
Stringpath=textPath();
StringbaPath=
eme()+"://"+verName()+":"+verPort(
)+path+"/";
%>
辽宁工业大学课程设计说明书(论文)
13
<%racterEncoding("utf-8");
racterEncoding("utf-8");
Stringname=ameter("urName");
Stringpwd=ameter("passWord");
UrInfou=newUrInfo(name,pwd,1);
IUrDaodao=newUrInfoDaoImpl();
booleanb=UrAsPwd(u);
intc=Flag(name);勤快的反义词
if(b){
if(c>0){
ribute("uname",name);
direct("");
}el{
ribute("uname",name);
direct("");
}
}el{
direct("");
}
%>
publicvoidqixing(){
for(inti=0;i<17;i++){
for(intj=0;j<17;j++){
if(qipan[i+1][j+1]==0){//说明此处没有棋子
qixingPC[i][j]=heiheng(i,j,2)+heishu(i,j,2)+heizuoxie(i,j,2)+heiyouxie(i
,j,2);
qixingPlayer[i][j]=heiheng(i,j,1)+heishu(i,j,1)+heizuoxie(i,j,1)+heiyoux
ie(i,j,1);
}
el{
qixingPC[i][j]=0;
qixingPlayer[i][j]=0;
}
}
}
}
//算出黑子横方向的棋型数值
publicintheiheng(inthang,intlie,intnum){
intk=0;//记录空白处的个数
intcount=1;//记录可以形成几连
辽宁工业大学课程设计说明书(论文)
14
intn=hang+1;//对应棋盘的行
intm=lie+1;//对应棋盘的列
booleanleft=fal;//判断左边是否有黑子
booleanliveLeft=fal;//判断左边是活还是死
booleanliveRight=fal;//判断右边是活还是死
while((qipan[n][m-1]!=-1)&&(qipan[n][m-1]==num||qipan[n][m-1]==0)){
if(qipan[n][m-1]==0&&k<1){//第一个空白
if(qipan[n][m-2]!=num){
liveLeft=true;
break;
}
k++;
m--;
}elif(qipan[n][m-1]==num){//黑子
left=true;
m--;
}el{//第二个空白
liveLeft=true;
break;
}
}
if(!left){
k=0;
m=lie+1;
}
while((qipan[n][m+1]!=-1)&&(qipan[n][m+1]==num||qipan[n][m+1]==0)){
intt=qipan[n][m+1];
if(m==lie){
count++;
m++;
continue;
}
if(t==0&&k<1){//第一个空白
if(qipan[n][m+2]!=num){
liveRight=true;
break;
}
k++;
m++;
}elif(t==0&&k>0){//第二个空白
liveRight=true;
break;
}el{//黑子
m++;
辽宁工业大学课程设计说明书(论文)
15
count++;
}
}
returnjieguo(liveLeft,liveRight,count,k,num);
}
//算出黑子竖方向的棋型数值
publicintheishu(inthang,intlie,intnum){
intk=0;//记录空白处的个数
intcount=1;//记录可以形成几连
intn=hang+1;//对应棋盘的行
intm=lie+1;//对应棋盘的列
booleantop=fal;//判断上边是否有黑子
booleanliveLeft=fal;
booleanliveRight=fal
while((qipan[n-1][m]!=-1)&&(qipan[n-1][m]==num||qipan[n-1][m]==0)){
if(qipan[n-1][m]==0&&k<1){//第一个空白
if(qipan[n-2][m]!=num){
liveLeft=true;
break;
}
k++;
n--;
}elif(qipan[n-1][m]==num){//黑子
top=true;
n--;
}el{//第二个空白
liveLeft=true;
break;
}
}
if(!top){
k=0;
n=hang+1;
}
while((qipan[n+1][m]!=-1)&&(qipan[n+1][m]==num||qipan[n+1][m]==0)){
intt=qipan[n+1][m];
if(n==hang){
count++;
n++;
continue;
}
if(t==0&&k<1){//第一个空白
if(qipan[n+2][m]!=num){
辽宁工业大学课程设计说明书(论文)
16
liveRight=true;
break;
}
n++;
}elif(t==0&&k>0){//第二个空白
liveRight=true;
break;
}el{//黑子
n++;
count++;
}
}
//returnjieguo(k==0,count);
returnjieguo(liveLeft,liveRight,count,k,num);
}
publicintheizuoxie(inthang,intlie,intnum){
intk=0;//记录空白处的个数
intcount=1;//记录可以形成几连
intn=hang+1;//对应棋盘的行
intm=lie+1;//对应棋盘的列
booleantop=fal;//判断上边是否有黑子
booleanliveLeft=fal;
booleanliveRight=fal;
while((qipan[n+1][m-1]!=-1)&&(qipan[n+1][m-1]==num||qipan[n+1][m-1]==0))
}
2.5测试分析
黑盒测试就是测试要在软件的接口处进行。这种方法是把测试内容看做一个盒子,
程序内部的逻辑结构和内部特性不被测试人员考虑,只依据程序的需求规格说明书来检
查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑
盒测试主要是为了发现以下4种错误:
是否有不正确或遗漏的功能。
在接口上,输入是否能正确的接受。能否输出正确的结果。
是否有数据结构错误或外部信息访问错误。
是否有初始化和终止性的错误。
辽宁工业大学课程设计说明书(论文)
17
第3章实训总结
本次课设做的是基于JSP的网络版五子棋游戏,目前软件系统分析的主流是面向对
象的分析,在面向对象的分析中又以统一建模语言UML最为流行。在数据库的设计上我
选择了关系型数据库的设计方法,由于整个系统主要就是对数据库进行操作所以在整个
系统的设计过程中我用了40%的时间进行数据库的设计。鉴于水平有限对数据库的优
化,如优化数据存储结新年心情说说 构、查询优化、数据的组织优化,还有很大的改进空间。
在软件开发编码阶段我才用原型法,先设计出个一个实现简单功能的系统在更具需
求一步步完善系统的功能。由于是才采用面向对象的设计所以系统中由很多类和方法,
我将他们归类将经常使用的方法放在单独的类文件中,在以后的编码中只要通过对名称
空间的引用就能调用他们。本系统在实现传统的五子棋游戏功能基础上对增强系统的安
全性进行了初步的尝试,但是由于这方面研究的不深所以实现的与需求还有一定的差距。
通过这次课设最大的收获就是知道了数据结构是数据在计算中的表示,算法是建在
数据结果上的对数据进行操作的逻辑,而且在这次的开发过程中对全局数据流分析对编
译技术的发展有了深刻的认识。
这个系统做完之后,对编程语言有了更深刻的理解,不会再有写程序的时候感觉与
计算机无关的感觉,现在写程序的同时会有这个程序在计算机中是怎么运行的印象,对
编程语言有了更深刻的了解。当然课程设计中还遇到了不少编程问题,但最后在老师的
辛勤指导下终于迎刃而解。同时,在老师的身上我也学得了很多实用的知识,在此我表
示感谢!同时,也对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
辽宁工业大学课程设计说明书(论文)
18
参考资料
[1]贾素玲,王强.JSP应用开发技术.北京:清华大学出版社,2008
[2]张海藩.软件工程导论(第五版).北京:清华大学出版社,2008
[3]王小春.Pc游戏编程(人机博弈).重庆:重庆大学出版社,2005
[4]李宁.JavaWeb开发技术大全.北京:清华大学出版社,2009
[5]贺松平.基于MVC模式的B/S架构的研究及应用.武汉:武汉理工大学出版,2004
[6]耿祥义,张跃平.JSP实用教程.北京:清华大学出版社,2003
[7]吴其庆.Java程序设计实例教程.北京:冶金工业出版社,2006
[8]张西林.SQL经典编程案例精粹.北京:人民邮电出版社,2005
[9]唐廉,曹英.中国软件科学.北京:高怎样煲鸡汤好喝 等教育出版社,2002
[10]张仲梁.JSP经典编程案例.北京:机械工业出版社,2005
[11]汪纯孝,谢礼珊,徐栖玲,jsp基础.广州:中山大学出版社,2001
[12]朱沆.SQL编程基础.广州:中山大学出版社,2004.
[13]赵松涛《JSP应用与实例集锦》人民邮电出版社,1999
[14]周之英《面向对象系统分析与设计》北京:清华大学出版社,2004
[15]罗国庆陈良萍等编著《网站建设案例精粹》北京:电子工业出版社,2004
[16]林柏钢编著《网络与信息安全教程》北京:机械工业出版社,2005
本文发布于:2023-03-26 03:54:57,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/dd27aa0eec48ff51e992e8320e66f528.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:休闲五子棋.doc
本文 PDF 下载地址:休闲五子棋.pdf
留言与评论(共有 0 条评论) |