中国象棋详细设计分析
《计算机综合实习》《计算机综合实习》 题目:题目:中国象棋(中国象棋(javajava 单机版)单机版) 班班级:级: 名:名: 学学号:号: 指导教师:指导教师: 日日期:期: 信息与计算科学信息与计算科学 10011001 班班 2014.1.72014.1.7 目录 第一章引言(概述) - 1 - 第二章 可行性分析 - 2 - 2.1 总体分析. - 2 - 2.2 开发环境介绍. - 2 - 2.2.1 软件开发环境 . -2- 第三章 需求设计 - 2 - 第四章详细设计 - 3 - 4.1 功能设计. - 3 - 4.1.1 功能说明 . -3- 4.1.2 对弈规则 . -3- 4.1.3 相关类图 错误错误! !未定义书签。未定义书签。 4.2 功能的实现 - 4 - 4.2.1 界面的实现 . -4- 4.2.2 棋谱的实现 . -8- 4.2.3 开始 . -8- 4.3棋子移动和吃棋规则 - 8 - 4.3.1 本节说明 . -8- 4.3.2 详细规则介绍 -8- 4.3.2.1 卒的移动及吃棋规则. -8- 4.3.2.2 炮和车的移动及吃棋规则. -8- 4.3.2.3 马的移动和吃棋规则. -9- 4.3.2.4 相(象)的移动和吃棋规则. -9- 4.3.2.5 士(仕)的移动和吃棋规则错误错误! !未定义书签。未定义书签。 4.3.2.6 将(帅)的移动和吃棋规则. -9- 4.4 测试说明. - 9 - 4.5 测试结果. - 10 - 运行结果. -10- 小 结错错误误! !未定义书签。未定义书签。 第一章第一章 引言(概述)引言(概述) 随着科学技术的不断提高,计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。 中国象棋发展至今已有二千 三、四百年的历史了,早在战国时期就有正式记载,堪称中国的国粹。想必在未来的几 年随着中国象棋在各个领域的推广,必定会带来巨大的影响和经济效益。 中国象棋对弈在中国有着悠久的历史, 是二人对抗性游戏中的一种。 由于用具简单, 趣味性很强,很快成为流行极为广泛的棋艺活动。也是我国正式开展的 78 个体育项目 之一,为促进该游戏在世界范围内的推广和普及,在中国历史上,象棋被列为士大夫们 的修身之艺,现在被视为怡神益智的一种有益的游戏。在棋艺对战中,玩家们可以从攻 与防、虚与实、整体与局部等复杂关系的变化中悟出某种各种哲理。象棋博弈是由两个 玩家轮流走子,以“将死”或“困毙”对方将或帅为胜的一种棋类运动,有着数以万亿 计的爱好者。它不仅能丰富人们的文化生活,陶冶情操,更有助于开发个人智力,启迪 思维,锻炼辨证分析能力和培养顽强的意志等等。 随着计算机的使用的深入普及,计算机应用技术的日益完善,人们已经和计算机有 着密切的关联,在计算机上玩游戏已经大众化,给人们带来了无限的欢悦,本系统是一 个小程序,只要在装有jdk 中的虚拟机的计算机上即可运行,中国象棋对弈系统实现了 双人对弈这个功能,可用于多人一起游戏。而实现中国象棋对弈系统就为象棋在网络应 用平台提供多人对弈打下基础。中国象棋对弈系统主要要实现的是棋子的走法和规则, 中国象棋讲究车,马,象,仕,卒,炮,将的活用;只有当将被对方玩家的棋子吃掉, 则首先吃掉对方将或帅的一方就是胜利的一方。玩家对局时,由红棋的一方先走,双方 轮流各走一次,直至分出胜负,对局即结束。轮到走棋的一方,要将某个棋子从一个十 字交叉点走到另一个十字交叉点,或者吃掉对方的棋子而占领其十字交叉点,都算走一 次。双方各走一次,称为一个回合。象棋是中华民族的传统文化,不仅在国内深受群众 喜爱,而且流传国外。 - 1 - 第二章第二章 可行性分析可行性分析 2.12.1 总体分析总体分析 此次对弈系统的开发研究是大学专业知识的一次综合应用于提高,计算机主要安装 jdk 运行环境和相关应用程序开发工具。运用java,gui 监听器和标准类库等知识,首先 编写一个主类 ChineseChess,构造一个主窗口,在主窗口上添加一工具栏,有相应的按 钮,用此来用来对“开始,悔棋 ,信息提示,退出,重新开始”进行操作。 1.中国象棋对弈系统是:图形界面,监听器等技术的综合运用。 2.对弈的实现:利用鼠标的监听来实现对象棋走法的操作。 2.22.2 开发环境介绍开发环境介绍 2.2.12.2.1 软件开发环境软件开发环境 1. 2. 3. 4. 结合本系统的特点,只需要一个软件开发工具和一个虚拟机即可,因此需要的软件有: 操作系统在 Windows Server 2003以上; 开发工具使用 Jcreator; 在操作系统上安装 jdk 的开发环境以及 jre(虚拟机)的运行环境。 第三章第三章 需求分析需求分析 中国象棋对弈系统要求实现下棋界面,利用鼠标监听来实现走棋与吃棋,胜负判断 并伴有信息提示,在棋盘界面上端设有工具栏,内容包括“开始,悔棋,信息提示,退 出,重新开始”等相关功能。详情如下: 1. 开始:开始一场新的游戏,并重新棋子初始化。 - 2 - 2. 悔棋:返回到上一步棋局,并开始继续下棋。 3. 信息提示:提示开始该谁走棋,默认红棋先走。 4. 退出:对话框提示,是否退出系统。 5. 重新开始:删除上次下棋的所有痕迹,重新初始化界面。如下图: (图) 第四章第四章 详细设计详细设计 4.14.1 功能设计功能设计 4.1.14.1.1 功能说明功能说明 这个系统主要实现人人对弈,采用鼠标监听的方法来实现对棋子的移动,双方依次 轮流走棋, 在工具栏有走棋的相关提示, 主要提示该轮到哪方走棋。 如果一方想要悔棋, 也是在征求对方同意的情况下,点击“悔棋”按钮,可连续悔棋。为防止误操作关闭下 棋界面,在退出时设有信息提示,如果确认退出,则点击“是”按钮,否则点击“否” 返回下棋界面。如果点击“重新开始”按钮,设有信息提示,确认“是” ,页面回到初 始状态,重新开始,否则页面保持不变。 4.1.24.1.2 对弈规则对弈规则 默认是红方先手,黑方后手,双方轮流下棋。当将或者帅被吃子,该方输棋。 4.1.34.1.3 相关类图相关类图 - 3 - ChessWindow win= new ChessWindow(“中国象棋”)………创建棋盘对象 public void dispaly(Chess chess, ChessMan chessMan) ………绘制棋盘 Controller controller = new Controller(gamePanel, chess, chessMan);; public void mouseClicked(MouseEvent e) {…… } public boolean isChessManMove(int[][] chessFlag, int newi, int newj){…… } ……创建对象 ……放入棋子对象 4.24.2 功能的实现功能的实现 4.2.14.2.1 界面的实现界面的实现 图形界面的是实现主要在类ChessWindow 类中实现,通过继承Jframe,实现 ActionListene