分享
分享赚钱 收藏 举报 版权申诉 / 32

类型Java中国象棋对弈系统毕业设计.doc

  • 上传人:sjmd695
  • 文档编号:7760723
  • 上传时间:2019-05-25
  • 格式:DOC
  • 页数:32
  • 大小:4.35MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java中国象棋对弈系统毕业设计.doc
    资源描述:

    1、毕业设计 (论文)中国象棋对弈系统系 别 : 计算机科学与技术系专 业 ( 班 级 ) : 计算机科学与技术 09 级本 2 班作 者 ( 学 号 ) : XXX(学号)指 导 教 师 : XXX(括号内填写职称或学位)完 成 日 期 : 2013 年 06 月 06 日XXXXX 教务处制目 录中国象棋对弈系统 .- 1 -Chinese chese playing system .- 2 -第一章 引言(概述) .- 4 -第二章 系统可行性分析 .- 5 -2.1 总体分析 - 5 -2.2 开发环境介绍 - 5 -2.2.1 硬件开发环境 - 5 -2.2.2 软件开发环境 - 5 -

    2、第三章 系统需求设计 .- 6 -第四章 详细设计 .- 7 -4.1 功能设计 - 7 -4.1.1 功能说明 - 7 -4.1.2 对弈规则 - 7 -4.1.3 相关类图 - 7 -4.1.4 相关类的类图 - 8 -4.2 功能的实现 .- 8 -4.2.1 图形界面的实现 - 8 -4.2.2 棋谱的实现 - 11 -4.2.3 棋子的添加 - 11 -4.2.4 背景音乐 - 13 -4.2.5 版本信息 - 13 -4.2.6 新游戏 - 14 -4.2.7 保存与打开 - 14 -4.2.8 悔棋 - 16 -4.3 棋子移动和吃棋规则 .- 17 -4.3.1 本节说明 -

    3、17 -4.3.2 详细规则介绍 .- 18 -4.3.2.1 卒的移动及吃棋规则 - 18 -4.3.2.2 炮和车的移动及吃棋规则 - 18 -4.3.2.3 马的移动和吃棋规则 - 18 -4.3.2.4 相(象)的移动和吃棋规则 - 18 -4.3.2.5 士(仕)的移动和吃棋规则 - 19 -4.3.2.6 将(帅)的移动和吃棋规则 - 20 -4.4 测试说明 - 20 -4.5 测试结果 - 21 -4.5.1 运行结果 - 21 -4.5.2 新游戏实现 - 23 -4.5.3 棋谱的打开与保存 - 25 -结 束 语 .- 27 -谢 词 .- 28 -参 考 文 献 .-

    4、29 -XXXX 本科毕业设计(论文)- 1 -中国象棋对弈系统摘 要:1、任务 据统计,中国有 2 亿人会下中国象棋,这相当于平均 6 至 7 个人中就有1 人会下,可见它有着广泛的群众基础。中国象棋对弈系统正是为这一可行性而开发设计的,玩家可以通过它很好的研究棋谱,学习中国象棋技术,提高水平。简单的棋规,便捷的载体,使得他成为雅俗共赏的竞技项目。该程序是一个图形界面的 java 中国象棋对弈系统,本系统主要实现如下目标:(1)系统实现:下棋界面,走棋与吃棋,胜负判断;(2)设计象棋菜单:新游戏,保存,打开,退出,悔棋,信息提示。2、着重培养的能力本课题旨在对大学期间所学基础和专业知识的全面

    5、检验与总结;提高综合运用所学专业知识分析、解决实际问题的能力;通过本课程设计使学生加深理解、巩固课堂理论知识和实验知识,使学生初步具备综合运用所学 Java 语言基础知识,面向对象程序设计的基本思想、方法与技术,数据结构技术等开发简单应用系统的基本能力,初步掌握软件开发中系统分析、系统设计、系统实现和系统测试等阶段的基本方法与技术,培养学生的创新意识,提高实践应用能力,为培养应用型人才服务;进行撰写技术报告、学术论文等方面的基本训练。3、成果形式软件系统和设计论文关键词: JAVA;象棋;对弈;游戏;大学;专业;能力;论文姓名:中国象棋对弈系统- 2 -Chinese chese playin

    6、g systemAbstract:1, task According to statistics, China has 200 million people can play Chinese chess, it is equivalent to an average of six to one in 7 people in people, it has a broad mass base. China chess system is designed for the feasibility and development, the player can move through it very

    7、 good research, learning Chinese chess technology, improve the level. Simple chess rule, convenient carrier, make him fit athletic project. The program is a graphical interface Java Chinese chess game system, this system mainly realize the following goals: (1) system implementation: chess interface,

    8、 playing chess and chess, the outcome, (2) design chess menu: a new game, save, open, quit, HuiQi, information prompt. 2, focus on training the ability This topic aims to the foundation and professional knowledge during the period of university comprehensive inspection and summary; To improve the in

    9、tegrated use of professional knowledge to analysis, the solution actual problem ability; Through this course design to make the students deepen understanding, consolidate the classroom theoretical knowledge and experimental knowledge, make students have integrated use of learned basic knowledge of J

    10、ava language, the object-oriented program design basic ideas, methods and technology, data structure, technology development simple application system such as the basic ability, preliminary grasp software development, system analysis, system design, system implementation and system test phase of the

    11、 basic methods and technology, cultivate the students innovation consciousness, improving practical application ability, to cultivate applied talents service; Write technical reports and academic papers of basic training.3, production forms Software system and the design paper Keywords:JAVA;chese ga

    12、me;game;university;magor;ability;dissertationXXXX 本科毕业设计(论文)- 3 -第一章 引言(概述)随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。中国象棋发展至今已有二千三、四百年的历史了,早在战国时期就有正式记载,堪称中国的国粹。想必在未来的几年随着中国象棋在各个领域的推广,必定会带来巨大的影响和经济效益。中国象棋对弈在中国有着悠久的历史,是二人对抗性游戏中的一种。由于用具简单,趣味性很强,很快成为流行极为广泛的棋艺活动。也是我国正式开展的 78 个体育项目之一,

    13、为促进该游戏在世界范围内的推广和普及,在中国历史上,象棋被列为士大夫们的修身之艺,现在被视为怡神益智的一种有益的游戏。在棋艺对战中,玩家们可以从攻与防、虚与实、整体与局部等复杂关系的变化中悟出某种各种哲理。象棋博弈是由两个玩家轮流走子,以“将死”或“困毙”对方将或帅为胜的一种棋类运动,有着数以万亿计的爱好者。它不仅能丰富人们的文化生活,陶冶情操,更有助于开发个人智力,启迪思维,锻炼辨证分析能力和培养顽强的意志等等。随着计算机的使用的深入普及,计算机应用技术的日益完善,人们已经和计算机有着密切的关联,在计算机上玩游戏已经大众化,给人们带来了无限的欢悦,本系统是一个小程序,只要在装有 jdk 中的

    14、虚拟机的计算机上即可运行,中国象棋对弈系统实现了双人对弈这个功能,可用于多人一起游戏。而实现中国象棋对弈系统就为象棋在网络应用平台提供多人对弈打下基础。中国象棋对弈系统主要要实现的是棋子的走法和规则,中国象棋讲究车,马,象,仕,卒,炮,将的活用;只有当将被对方玩家的棋子吃掉,则首先吃掉对方将或帅的一方就是胜利的一方。玩家对局时,由红棋的一方先走,双方轮流各走一次,直至分出胜负,对局即结束。轮到走棋的一方,要将某个棋子从一个十字交叉点走到另一个十字交叉点,或者吃掉对方的棋子而占领其十字交叉点,都算走一次。双方各走一次,称为一个回合。象棋是中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。

    15、姓名:中国象棋对弈系统- 4 -第二章 系统可行性分析2.1 总体分析此次对弈系统的开发研究是大学专业知识的一次综合应用于提高,计算机主要安装jdk 运行环境和 Eclipse 应用程序开发工具。在技术方面,开发过程中会出现很多问题,有预想之中的,也有预想之外的,特别在图形界面的设计上遇到了很多问题,但通过进一步的学习和与指导老师的沟通,一些问题逐一被解决。运用 java,gui 监听器和标准类库等知识,首先编写一个主类ChineseChess,构造一个主窗口,在中国象棋-Java 版上添加一块可显示的棋盘,再插入图片 CChess.GIF 图片作为棋谱,再在棋盘上添加 32 个棋子按钮,再插

    16、入相应图片作为棋子,然后再在主窗口下面添加一块面板作为设计象棋菜单,用此菜单来用来对“新游戏,悔棋,保存,打开,退出棋谱,走棋提示”进行操作。1.中国象棋对弈系统是:图形界面,线程,监听器与文件等技术的综合运用。2.图形界面的实现:考虑到中国象棋的特点本身程序使用 GridLayout 布局来实现由于使用鼠标操作本身程序使用 Jbutton 组件。3.对弈的实现:利用鼠标的监听来实现对象棋走法的操作。2.2 开发环境介绍2.2.1 硬件开发环境本系统硬件环境在操作系统在 Windows Server 2003 上完成编码及测试,硬件要求不高,只要有台电脑即可。2.2.2 软件开发环境1. 结合

    17、本系统的特点,只需要一个软件开发工具和一个虚拟机即可,因此需要的软件有:2. 操作系统在 Windows Server 2003 以上;3. 开发工具使用 Eclipse;4. 在操作系统上安装 jdk 的开发环境以及 jre(虚拟机)的运行环境。XXXX 本科毕业设计(论文)- 5 -第三章 系统需求设计中国象棋对弈系统要求实现下棋界面,利用鼠标监听来实现走棋与吃棋,胜负判断并伴有信息提示,在下棋界面下端设有象棋菜单,菜单内容包括“新游戏,保存,打开,退出,悔棋,信息提示”等相关功能。详情如下:1. 新游戏:开始一场新的游戏,并重新棋子初始化。2. 打开:打开原保存的文件,并开始棋局。3.

    18、保存:实现棋谱的保存,并生成一个棋谱文件。4. 悔棋:返回到上一步棋局,并开始继续下棋。5. 退出棋谱:对话框提示,是否退出系统。姓名:中国象棋对弈系统- 6 -第四章 详细设计4.1 功能设计4.1.1 功能说明这个系统主要实现人人对弈,采用鼠标监听的方法来实现对棋子的移动,双方依次轮流走棋,在状态显示栏有走棋的相关提示,主要提示该轮到哪方走棋。如果一方想要认输,在征求对方认可的情况下,点击“新游戏”开始新的一局开始对弈,如果一方想要悔棋,也是在征求对方同意的情况下,点击“悔棋”按钮,可连续悔棋。如果遇到紧急情况或者疲惫的情况下,可点击“保存”按钮保存当前棋局,当空闲的时候可以点击“打开”按

    19、钮并找到上次保存的棋局。为防止误操作关闭下棋界面,在退出时设有信息提示,如果确认退出,则点击“是”按钮,否则点击“否”返回下棋界面。4.1.2 对弈规则选择红黑棋子双方可以自由商定选择,但默认是红方先手,黑方后手。打开以前残局可按照信息提示框的提示决定哪方先手,哪方后手。4.1.3 相关类图(图)4.1.3-1 包和类在 Eclipse 应用程序开发工具新建一个项目 ChineseChese 项目,在项目中新建包com.Larry.frame,包内包含主类 ChineseChese.java,作为该程序的 main 方法;图形界面类XXXX 本科毕业设计(论文)- 7 -CheseMainFr

    20、ame.java,对界面进行设计操作;象棋走子规则类 CheseRule.java,主要对各个棋子的走法规则进行控制;音乐类 MusicDemo.java,主要用于背景音乐的控制。4.1.4 相关类的类图该类图包括了各个类内的方法,详细的展示了类中的方法。(图)4.1.4-1 相关类的类图4.2 功能的实现4.2.1 图形界面的实现图形界面的是实现主要在类 ChineseMainFrame 类中实现,通过继承 Jframe 来进行初始化操作以下是相关代码:如(图)4.2.1-1 图形界面/创建工具栏jmain = new JToolBar();showAbout = new Button(“

    21、关于“ );showAbout.setToolTipText(“关于“ );text = new JLabel(“热烈欢迎“);text.setToolTipText(“提示信息“);anew = new Button(“ 新 游 戏 “ );anew.setToolTipText(“重新开始新的一局“);姓名:中国象棋对弈系统- 8 -exit = new Button(“ 退 出 “);exit.setToolTipText(“退出本程序“);repent = new Button(“ 悔 棋 “);repent.setToolTipText(“返回到上次走棋的位置“ );showOpen

    22、 = new Button(“打开“);showOpen.setToolTipText(“打开以前棋局“);showSave = new Button(“保存“);showSave.setToolTipText(“保存当前棋局“);/把组件添加到工具栏jmain.setLayout(new GridLayout(0,7);jmain.add(anew);jmain.add(repent);jmain.add(showOpen);jmain.add(showSave);jmain.add(exit);jmain.add(text);jmain.add(showAbout);jmain.setBo

    23、unds(0,500,470,24);con.add(jmain);/注册按扭监听anew.addActionListener(this);repent.addActionListener(this);exit.addActionListener(this);showAbout.addActionListener(this);showOpen.addActionListener(this);showSave.addActionListener(this);/添加棋盘标签con.add(image = new JLabel(new ImageIcon(“images/CChess.GIF“);i

    24、mage.setBounds(0,0,446,497);image.addMouseListener(this);/注册窗体关闭监听this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we)System.exit(0););/窗体居中让窗体居中Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();XXXX 本科毕业设计(论文)- 9 -Dimension frameSize = this.getSize()

    25、;if (frameSize.height screenSize.height)frameSize.height = screenSize.height;if (frameSize.width screenSize. Width)frameSize.width = screenSize. Width;this.setLocation(screenSize. Width - frameSize.width) / 2 - 200 ,(screenSize.height - frameSize.height ) / 2 - 290);this.setIconImage(new ImageIcon(“

    26、images象 .GIF“).getImage();this.setResizable(false);this.setTitle(Title);this.setSize(450,550);this.show();(图)4.2.1-1 图形界面 姓名:中国象棋对弈系统- 10 -(图)4.2.3-1 棋谱4.2.2 棋谱的实现在图形界面的空白处添加棋谱图片CChese.GIF ,即可显示棋谱如(图)4.2.2-1 棋谱。以下是相关代码:/添加棋盘标签con.add(image = new JLabel(new ImageIcon(“imageCChess.GIF“);image.setBound

    27、s(0,0,446,497);image.addMouseListener(this);4.2.3 棋子的添加在图形界面中添加相关棋子图片后如(图)4.2.3-1/添加棋子标签drawChessMan();这是添加红色棋子的棋子“车” ,采用接口的形式实现,其它棋子依此方法依次添加即可形成一个完美的棋谱了。/车in = new ImageIcon(“image车1.GIF“ );for (i=0,k=10;i中国象棋对弈系统版本号:v1.0制作者: XXXX导 师:XXXX“,JLabel .LEFT);pane=new JPanel();ok=new JButton(“确定“ );ok.ad

    28、dActionListener(this);pane.add(ok);add(pane,BorderLayout.SOUTH);add(label,BorderLayout.CENTER);在此,也可用此方法为象棋对弈系统添加,对弈规则以及说明书等介绍,为玩家提供更方便的游戏体验。4.2.6 新游戏在游戏进行过程中,往往会因某种原因会重新开始游戏,玩家不可能重新开启游戏客户端,为了给玩家更好的游戏体验,设置重新开始游戏是必不可少的功能。重新开始游戏后,会重新排列棋子返回原位。以下是红子“车”的排列方法,通过坐标把相应的棋子排列,其它棋子排列与此方法相似,只是坐标不同。/重新排列每个棋子的位置/

    29、车for (i=0,k=10;i= 10 break;如果有则Chese = true;实现了吃掉左下方的敌方棋子。吃右下方敌方棋子,首先判断右下方是否有敌方棋子:for (int i=0;i= 50 & playQi.getX() - play.getX() = 40 & playQi.getY() - play.getY() = 50 & me.getX() - play.getX() = 15 & play.getY() - me.getY() 150 & me.getX() 13 & me.getY() 340 & me.getX() 150 & me.getX() = 13 & pl

    30、ay.getY() - me.getY() = 15 & play.getY() - me.getY() = 13 & play.getY() - me.getY() = 15 & play.getY() - me.getY() = 50 & me.getX() - play.getX() = 50 & me.getY() - play.getY() = 15 & me.getY() - play.getY() = 50 & me.getY() - play.getY() = 80)吃棋规则:吃棋时也是按照移动规则,进行判断吃子,判断被吃的棋子是否与士(仕)相近,如果相近则吃掉,且不能吃掉己方

    31、棋子。4.3.2.6 将(帅)的移动和吃棋规则帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在九宫之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。4.4 测试说明在软件开发的过程中,人们使用了很多保证软件品质的方法分析、设计和实现软件系统,但免不了还会在工作中犯很多错误。为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件的各项功能和操作进行严格的技术评审。软件测试就是在软件正式运用前,对软件需求分析、设计规格说明和编码的再次审查和修改使之更加完善,是软件质量保证的关键所在,也可以说软件测试是为了发现运行中的

    32、错误而运行程序的过程。其目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。目前,流行的软件测试方法有两种,一种是黑盒测试法,另一种是白盒测试法。任何工程产品都可以使用这两种方法进行测试。黑盒测试是已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否姓名:中国象棋对弈系统- 20 -符合要求。软件的白盒测试是对软件的过程性细节作细致的检查,它是已知产品的内部工作过程,可以通过测试证明每种操作是否符合设计规格要求,所有的内部成分是否已经检查。但是,任何软件的开发项目都要受到期限、费用、人力和机时等条件的限制。尽管我们以为为了充分揭露程序中的所有隐藏错误、彻底的做法是针对所有可能的数

    33、据进行测试,但事实告诉我们,这样做是不行的。在测试阶段既然穷举测试不可行,为了节省时间和资源,提高测试效率,就必须精心设计测试用例,也就是要从数量极大的可用测试用例中精心地挑选少量的测试数据,使得采用这些测试数据能够达到最佳的测试效果,或者说它们能够高效率地把隐藏的错误揭露出来。对于本软件的测试,我们选择的是黑盒测试法中的边界值测试。人们从长期的测试工作经验得知,大量的错误是发生在输入或者输出范围的边界值上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入等价类与输出等价类的边界,就是应着重测试的边界情况

    34、。应当选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或者任意值作为测试用例。边界值分析方法选择测试用例的原则:(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多 1、比最小个数少 1 作为测试数据。(3)如果程序的规格说明给出的输入域或者输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。(4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。(5)分析规格说明,找出其他可能

    35、的边界条件。4.5 测试结果4.5.1 运行结果本系统可以实现人人对弈详情如图所示:点击棋盘任何位置开局,信息提示栏的“热烈欢迎”开始闪动,并且红方先手。按照提示依次走棋最终分出胜负。XXXX 本科毕业设计(论文)- 21 -(图)4.5.1-1 黑棋走棋(图)4.5.1-2 红棋走棋姓名:中国象棋对弈系统- 22 -(图)4.5.1-3 红方获胜 (图)4.5.1-4 黑方获胜4.5.2 新游戏实现XXXX 本科毕业设计(论文)- 23 -本系统成功的实现了新游戏功能,点击新游戏即可开始新的一局,并且重新布子,具体如图所示:(图)4.5.2-1 游戏进行中 (图)4.5.2-2 新游戏姓名:

    36、中国象棋对弈系统- 24 -4.5.3 棋谱的打开与保存(图)4.5.3-1 保存棋谱(图)4.5.3-2 打开棋谱 XXXX 本科毕业设计(论文)- 25 -(图)4.5.3-3 保存前棋谱 (图)4.5.3-4 打开后的棋谱姓名:中国象棋对弈系统- 26 -结 束 语四年的大学生涯即将走入尾声,校园生活就要划上句号,心中无限的眷念和不舍。从校园走出去,对每个学生来说,都是一个新的挑战,踏上一个新的征程,把大学学到的知识运用到实际工作中去。回首大学生涯,学友情深,情同兄妹, 一起奋斗,一起玩耍,生活中既有快乐也有艰辛,充满关爱,感谢老师们这些年来的悉心的辅导和悉心栽培和对成长的关系与爱护。在走出校园之前毕业设计是大学生所学的唯一凭证,它概括了大学生在校的学习状况,总结了大学以来的个人实力。从 2012 年 11 月 15 日接收到指导老师的任务书,经过差不多五个月的努力拼搏,终于在 2013 年 4 月底完成了中国象棋对弈系统的毕业论文。每走一步都是新的尝试与挑战,是在大学期间唯一完成的大项目之一。在此之间,从对网络资源的认识,再到熟练运用网络资源,最有帮助的软件就是qq 群,在做毕业设计的阶段里加了几个研究 JAVA 的群,里面的人非常热情,只要有问题,在群里问了,不要几分钟就能解决问题,里面有很多“老人” ,很热情的为新手们解说当前的行业前景,对刚出校园的学生帮助很大。

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java中国象棋对弈系统毕业设计.doc
    链接地址:https://www.docduoduo.com/p-7760723.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开