JAVA语言课程设计报告 五子棋源代码_第1页
JAVA语言课程设计报告 五子棋源代码_第2页
JAVA语言课程设计报告 五子棋源代码_第3页
JAVA语言课程设计报告 五子棋源代码_第4页
JAVA语言课程设计报告 五子棋源代码_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江科技学院经济管理学院JAVA语言课程设计报告选题名称五子棋小游戏学生学号专业班级信管092学生姓名学生成绩指导教师朱军工作时间2012-06-27

目录TOC\o"1-3"\u1选题简介 32需求分析 42.1系统要实现的目标分析 42.2对输入输出数据及流程的分析 42.3开发环境及运行环境分析 52.3.1开发环境 52.3.2运行环境 53系统设计 53.1系统功能模块设计 53.2类设计 63.2.1服务器类 63.2.2游戏客户端 63.2.3网络客户端类 73.2.4棋盘类 73.3界面设计 74测试 84.1测试用例及结果 84.2程序功能的评价 85.总结 95.1遇到的问题及解决的方法 95.2开发体会及自评成绩 9参考文献 101选题简介电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点[1]。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。网络五子棋游戏是使用Java语言开发的一款游戏。它使用SOCKET建立连接,多线程处理数据,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。随着计算机网络技术的发展,网络游戏已经成为计算机技术中最具潜力的热点领域,随着联众世界、腾讯游戏等网络游戏平台的拓展,越来越多的人参与到网络游戏中。特别是其中一些休闲益智类的棋牌游戏,集趣味性、娱乐性、互动性和益智性于一体,拥有大量的用户。因此使用Java开发网络五子棋游戏是一个实用性很强的毕业设计项目。网络五子棋游戏的总体功能是要设计出具有精美界面的,具备人工智能的,支持网络对弈的五子棋游戏。本系统最终的目的是建立一个有具体规则的五子棋平台,使两台不同计算机的使用者通过一定的网络连接,达到网络对弈的目的,以及单机上的人机对战。2需求分析2.1系统要实现的目标分析本课题为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成人人对战的功能。网络连接部分为Socket编程应用,客户端负责界面维护和收集用户输入的信息及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们的搜索进行比较,在这些算法的基础上分析一些提高电脑智能方案。开始1.初始化2.主控制开始1.初始化2.主控制3.白方下子白方黑方否则胜利4.判断胜负结束3.黑方下子2.3开发环境及运行环境分析2.3.1开发环境 MicrosoftWindowsXPProfessionalServicePack3 JDK1.60 JCreatorPro2.3.2运行环境 MicrosoftWindowsXP操作系统 1024*768或以上的屏幕分辨率3系统设计3.1系统功能模块设计根据上面的系统的设计要求,可以将此网络五子棋游戏分为以下几个模块: 初始化模块:建立棋盘数组并清零以备使用;初始化键盘/鼠标等输入输出设备并在屏幕上画出棋盘。 主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中,主要担当一个调度者的角色。 玩家落子模块:即用户在指定落子区域单击后,程序会计算该子的坐标,并且将棋盘数组中坐标处记录棋子的颜色,1代表黑色,2代表白色,以表明是哪方下的棋子。 分析盘面填写棋型表模块:本程序核心模块之一,人工智能算法的根本依据。 电脑落子模块:根据填写的棋盘表,选择最优落子位置。 胜负判断模块:根据预先设定的规则,判断游戏胜负。 网络模块:在人机对弈的基础上,添加网络功能的实现,使两台不同计算机的用户通过网络连接,实现网络对弈的功能[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]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论