1、java象棋课程设计课程名称: JAVA课程设计 题 目: “网络象棋”游戏的设计与开发系 名: 信息工程系 专业班级: 软件工程 姓 名: 学 号: 指导教师: 2012年 6 月 18 日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程系 设计题目:“网络象棋”游戏的设计与开发初始条件: 网络象棋,网络版的棋类游戏。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个网络版的象棋游戏。该游戏包括网络功能,棋盘功能和辅助功能。本系统使用JAVA SWING技术和事件处理机制进行棋盘界面的设计,开发和功能实现, 使用Sock
2、et网络编程和多线程技术进行多客户端之间的对战。系统总体架构如下:系统功能点说明如下:编号功能名功能描述1网络功能通过网络通信,实现多客户端对战2棋盘功能绘制棋盘绘制棋盘与棋子下棋功能点击棋子,可以走动下棋规则设计相应算法,控制不同棋子的走法3辅助功能悔棋通过记录走棋步骤,实现悔棋截屏关键步骤,实现截屏录制可以录制每一步下棋的视频4系统打包系统打包,制作安装程序设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:“即时通”网络通信系统的设计与开发【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP【开发工具】 NetBea
3、ns IDE【完成时间】 2012.6 .4-2012.6.15【需求分析】分析阐述要实现的系统应具有什么样的功能。【系统总体设计方案】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。让读者了解方案的总体设计和关键技术。要阐述自己的设计方案,说明为什么要选择或设计这样的方案。具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图;各功能模块所要达到的设计目标的简单介绍;设计的数据字典(数据库、表的结构);使用的设计软硬件环境和开发技术和平台等。【系统详细设计】在这部分中,要将整个开发工作的内容进行详细的介绍。一般按照功能模块分成几部分来介绍。每部分应包括文字叙述、界
4、面图片、关键实现技术(操作或代码)等几个方面综合说明问题。【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。测试:介绍如何测试系统,测试中发现的问题和解决方案。【结束语】这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。【参考文献】罗列在设计过程中查阅的文献名称 注意:参考文献罗列的格式为 资料编号作者姓名文献或期刊名称出版社名称,文献的出版时间或期刊的期号例如:文献 1 吕凤翥,马皓. Java语言程序设计(第2版)M.北京:清华大学出版社,2010 期刊 2 石振国. 用JSP实现对Web数据库的访问J. 计算机应用,2010(05):5-8.二、课程设
5、计说明书(或报告书)正文的书写格式简介一、正文标题层次 正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下:第一级(章) 1 2 3 第二级(条)1.1 1.22.12.2 3.1 3.2 第三级(条)1.1.11.1.2 1.2.11.2.22.1.12.1.2 2.2.12.2.23.1.13.1.2 3.2.13.2.2 二、表格 每个表格应有自己的表序与表题,表序与表题间空一格。例如:表1.1 XXXX ,且表题与表序应写在表格的上方正
6、中处。三、插图 插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。四、公式 公式应另起一行写在稿纸的中央。时间安排:日期任务课程内容6.18-19棋盘界面的绘制Eclipse/NetBeans使用Swing技术6.19-20实现棋子的走动事件代理 6.20-21棋子规则实现Socket,Thread,JavaOOJAVA数据结构6.25辅助功能实现6.26-27网络通讯6.28系统打包 验收install4j使用 指 导 教 师 签 字: 2012 年 6 月 14 日系 主 任 签 字: 2012 年 6 月
7、15 日1 目标用JAVA开发一个象棋游戏。让我们熟悉JAVA基本事件处理,学会java面向对象的设计。以及java各种控件及图像用户的界面的设计使用,分别掌握基本工具继承抽象类 接口。输入输出,流程控制,开发环境,实现简单的功能设计,帮助熟练的掌握有关java的知识结构体系。通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。2 软件开发环境与技术简介2.1 开发工具介绍EclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是
8、一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插
9、件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。2.2 硬件环境1操作系统:Microsoft Windows XP。2内存:1G内存以上。2.3 软件环境开发工具选用Eclipse3 系统需求分析提供棋盘和棋子;设定棋子的走棋规则;该哪方走棋时,旁边
10、会有提示哪方走棋;可以悔棋; 判断胜负;4 系统总体设计4.1棋盘模板中国象棋是双方在有着9调竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点。河界将棋盘分成两等份,每一边都有一块有9个点组成的九宫。4.2棋子模板利用一个二位数组,画出各个棋子。4.3棋子规则模板规定各个棋子的走法规则,使每个棋子都是在棋点上行走,而不是在方格中行走如棋子“将”,“帥”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;“象”必须一次沿着对角线方向走两个棋点,但它不能过河也不能跳过或穿越障碍,即“象”不能
11、别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动人一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。4.4悔棋模板当用户走错棋时,可以允许用户回到上一步走棋的状态,以实现悔棋的功能。5 系统详细设计5.1 棋盘的设计首先设计好画布的大小,以及标题,颜色之类的public Gui() this.add(c); this.setTitle(中国象棋)
12、; this.setSize(600, 600); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.c.addMouseListener(this.c); 再在设计好的画布上,画出线条,设计出棋盘,由于棋盘中间有所谓的“河”,所以并不能单纯的用两个for循环画出棋盘的格子,所以选择在中间断掉,空出河界,再在后面下方继续利用fou循环画出棋盘的另外一方。这样画出来的
13、只有上下两个部分for(int y=50;y550;y+=50) g.drawLine(100, y,500, y); /画竖线线 for(int x=100;x=500;x+=50) g.drawLine(x,50,x,250); for(int x=100;x0) /向下走 for(int i=1;r1+i0) /向上走 for(int i=1;r1-ir2;i+) if(this.chessmanr1-ic1!=0) j+; if(j=0&c1=c2) flag=true; if(c1-c20) /向左走 for(int i=1;c1-ic2;i+) if(this.chessmanr1
14、c1-i!=0) j+; if(c2-c10) /向右走 for(int i=1;c1+ic2;i+) if(this.chessmanr1c1+i!=0) j+; if(this.chessmanr2c20) flag=false; “炮”的走法设计。 if(r2-r10) /向下走 for(int i=1;r1+i0) /向上走 for(int i=1;r1-ir2;i+) if(this.chessmanr1-ic1!=0) j+; if(j=0&c1=c2&this.chessmanr2c2=0) flag=true; if(j=1&c1=c2&this.chessmanr2c27)
15、flag=true; if(c1-c20) /向左走 for(int i=1;c1-ic2;i+) if(this.chessmanr1c1-i!=0) j+; if(c2-c10) /向右走 for(int i=1;c1+ic2;i+) if(this.chessmanr1c1+i!=0) j+; if(j=0&r1=r2&this.chessmanr2c2=0) flag=true; if(j=1&r1=r2&this.chessmanr2c2!=0) flag=true; if(this.chessmanr2c20) flag=false; break; “马”的走法设计。马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称“马走日”。马一次可走的选择点可以达到四周的八个点,故有“八面威风”之说。如果在要去的方向有别的棋子挡住,马就无法走过去,俗称“蹩马腿”。if(r1-r2=2&c1-c2=1&this.chessmanr1-1c1=0) /上左 flag=true; if(r1-r2=2&c2-c1=1&this.chessmanr1-1c1=0) /上右 flag=true; if(r2-r1=2&c1-c2=1&this.chessmanr1+1c1=0) /下左 flag=true;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1