JAVA语言课程设计报告 五子棋源代码.docx
- 文档编号:23066858
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:10
- 大小:58.78KB
JAVA语言课程设计报告 五子棋源代码.docx
《JAVA语言课程设计报告 五子棋源代码.docx》由会员分享,可在线阅读,更多相关《JAVA语言课程设计报告 五子棋源代码.docx(10页珍藏版)》请在冰豆网上搜索。
JAVA语言课程设计报告五子棋源代码
浙江科技学院
经济管理学院
JAVA语言课程设计报告
选题名称五子棋小游戏
学生学号
专业班级信管092
学生姓名
学生成绩
指导教师朱军
工作时间2012-06-27
目录
1选题简介3
2需求分析4
2.1系统要实现的目标分析4
2.2对输入输出数据及流程的分析4
2.3开发环境及运行环境分析5
2.3.1开发环境5
2.3.2运行环境5
3系统设计5
3.1系统功能模块设计5
3.2类设计6
3.2.1服务器类6
3.2.2游戏客户端6
3.2.3网络客户端类7
3.2.4棋盘类7
3.3界面设计7
4测试8
4.1测试用例及结果8
4.2程序功能的评价8
5.总结9
5.1遇到的问题及解决的方法9
5.2开发体会及自评成绩9
参考文献10
1选题简介
电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。
Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点[1]。
如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。
网络五子棋游戏是使用Java语言开发的一款游戏。
它使用SOCKET建立连接,多线程处理数据,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。
随着计算机网络技术的发展,网络游戏已经成为计算机技术中最具潜力的热点领域,随着联众世界、腾讯游戏等网络游戏平台的拓展,越来越多的人参与到网络游戏中。
特别是其中一些休闲益智类的棋牌游戏,集趣味性、娱乐性、互动性和益智性于一体,拥有大量的用户。
因此使用Java开发网络五子棋游戏是一个实用性很强的毕业设计项目。
网络五子棋游戏的总体功能是要设计出具有精美界面的,具备人工智能的,支持网络对弈的五子棋游戏。
本系统最终的目的是建立一个有具体规则的五子棋平台,使两台不同计算机的使用者通过一定的网络连接,达到网络对弈的目的,以及单机上的人机对战。
2需求分析
2.1系统要实现的目标分析
本课题为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。
主要完成人人对战的功能。
网络连接部分为Socket编程应用,客户端负责界面维护和收集用户输入的信息及错误处理。
服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。
分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们的搜索进行比较,在这些算法的基础上分析一些提高电脑智能方案。
2.2对输入输出数据及流程的分析
2.3开发环境及运行环境分析
2.3.1开发环境
lMicrosoftWindowsXPProfessionalServicePack3
lJDK1.60
lJCreatorPro
2.3.2运行环境
lMicrosoftWindowsXP操作系统
l1024*768或以上的屏幕分辨率
3系统设计
3.1系统功能模块设计
根据上面的系统的设计要求,可以将此网络五子棋游戏分为以下几个模块:
l初始化模块:
建立棋盘数组并清零以备使用;初始化键盘/鼠标等输入输出设备并在屏幕上画出棋盘。
l主循环控制模块:
负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中,主要担当一个调度者的角色。
l玩家落子模块:
即用户在指定落子区域单击后,程序会计算该子的坐标,并且将棋盘数组中坐标处记录棋子的颜色,1代表黑色,2代表白色,以表明是哪方下的棋子。
l分析盘面填写棋型表模块:
本程序核心模块之一,人工智能算法的根本依据。
l电脑落子模块:
根据填写的棋盘表,选择最优落子位置。
l胜负判断模块:
根据预先设定的规则,判断游戏胜负。
l网络模块:
在人机对弈的基础上,添加网络功能的实现,使两台不同计算机的用户通过网络连接,实现网络对弈的功能[9]。
3.2类设计
3.2.1服务器类
服务器类用于接收客户端的连接,并为每个客户端在服务器端启动单独的一个守护线程,线程的主要功能是接收客户端发送过来的消息并做出相应的处理,客户端发送到服务器端的主要消息有两部分:
一部分是客户端发送给服务器端需要服务器端进行处理的。
如客户端发送过的连接信息、客户端发送过来的改名信息、客户端发送过的断开连接信息等。
另一部分是客户端发送给服务器端需要服务端转发给其他客户端的消息。
如客户端给游戏另一方发送的棋盘状态数据、倒计时信息、聊天信息。
3.2.2游戏客户端类
游戏客户端的主要功能是为了初始化和组织用户界面,并且定义了各个按钮的功能。
游戏客户端的主要对象如下:
1.GameMain本程序的主函数,初始化棋盘。
用于判定玩家是否与服务器连接。
2.isChess
用于判定玩家是否已经在开局游戏中。
3.2.3网络客户端类
网络客户端的主要功能是当前玩家与其他玩家进行对弈时,网络客户端需要发送和接收的消息处理。
3.2.4棋盘类
棋盘类的主要功能是绘制玩家的棋盘状态与棋子信息以及电脑落子算法的实现。
棋盘类的主要对象:
1.board
玩家所维护的棋盘二维数组。
结果为1表示(x,y)位置为黑子,结果为2表示(x,y)位置为白子。
2.withComputer
玩家与电脑对弈的标志。
如果当前玩家是与电脑对弈,此变量值为真;否则为假。
3.isMouseEnable
以此变量来控制在网络对弈的双方中,当前玩家是否处于可以落子状态。
因为网络对弈要求当一玩家下完后,对方才能落子,因此当此变量为真时,玩家可以落子;当此变量为假时,玩家不可以落子。
4.isRegretEnable
判断当前的悔棋按钮是否可用。
为真时,玩家可以悔棋;为假时,玩家不可以悔棋。
3.3界面设计
操作界面如下图
(1)所示,游戏画面简单易懂:
(1)
4测试
4.1测试用例及结果
用例名称:
网络客户端功能
用例描述:
玩家连接上服务器后,是否可以进行正常的对弈操作。
测试结果:
连接成功,测试结果正确。
见图
(2)
(2)可以实现胜负的判断,并终止游戏
4.2程序功能的评价
本程序主要实现简单的五子棋对战功能,游戏界面简单,操作简易。
开局后由系统默认分配先下棋的一方,黑白方先实现五子连珠的一方则取得胜利。
本程序由6个基本功能模块构成,各模块的详细分析如下:
1.主函数GameMain本程序的主函数,初始化棋盘。
2.BlackWin实现黑方获胜,WhiteWin实现白方获胜。
3.Draw双方平局
4.GameFramesetTitle("五子棋");setSize(400,420);
4.PaintPanel游戏界面。
5.总结
5.1遇到的问题及解决的方法
问题:
设计的游戏没有游戏界面。
解决方法:
进行界面设计。
去网上查找资料,准备需要的图片文件等;设计图形界面。
如创建键盘
for(inti=0;i<16;i++){
g2.draw(newLine2D.Double(startX,startY+20*i,startX+300,startY+20*i));//创建盘面
g2.draw(newLine2D.Double(startX+20*i,startY,startX+20*i,startY+300));
}
5.2开发体会及自评成绩
经过这几周对Java面向对象程序设计的学习,我更加了解到Java学习的重要性,以及Java对我们专业的发展发挥的作用。
在上个学期我们也学习了Java语言程序设计基础,在此基础之上学习起来就方便了一些,做起实验来也顺手很多,能很快地进入状态。
要想成为一个出色的程序员,一定要有耐心和恒心。
我也感谢我的java课程的任课老师朱军老师,因为是他让我对java产生了好奇与无穷的兴趣。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
对于文中出现的不足和系统中出现的问题敬请老师指导。
这次课程设计我的总体自我评价为良好。
参考文献
[1]埃史尔,陈昊鹏.Java编程思想(第4版)[M].北京:
机械工业出版社,2007.6:
105-121
[2]李钟尉,马文强,陈丹丹.Java从入门到精通[M].北京:
清华大学出版社,2008.9:
234-250
[3]Y.DanielLiang,万波,郑海红,潘蓉.Java语言程序设计:
基础篇(原书第6版)[M].北京:
机械工业出版社,2008.6:
355-363
[4]IanF.Darwin,关丽荣,张晓坤.Java经典实例(第2版)[M].北京:
中国电力出版社,2009.2:
179-203
[5]冯博应群.面向对象的Java网络编程[M]。
清华大学出版社.2004年11月
[6]孙更新等.Java毕业设计指南与项目实践[M].科学出版社.2008年03月
[7]单文仁.Java在我国的应用现状和发展趋势[J].《科技成果纵横》.2007年2期-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA语言课程设计报告 五子棋源代码 JAVA 语言 课程设计 报告 五子棋 源代码