java中国象棋课程设计系统
- 格式:doc
- 大小:247.32 KB
- 文档页数:13
java开发象棋游戏课程设计一、课程目标知识目标:1. 让学生掌握Java语言的基本语法和面向对象编程思想。
2. 使学生了解并运用Java的图形用户界面(GUI)编程,实现象棋游戏的基本界面设计。
3. 让学生掌握二维数组的使用,完成棋盘的设计与棋子的存储。
技能目标:1. 培养学生运用Java语言解决实际问题的能力,学会分析、设计和实现小型游戏程序。
2. 培养学生的逻辑思维能力,能够独立完成象棋游戏的基本规则编写。
3. 提高学生的团队协作能力,通过分组合作完成课程项目。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动探索新技术的欲望。
2. 培养学生具有良好的编程习惯,注重代码规范和优化。
3. 培养学生面对挑战和困难时保持积极的态度,勇于克服问题,不断进步。
本课程结合学科特点,针对高年级学生的编程基础和认知水平,以Java语言为基础,设计具有实用性和挑战性的象棋游戏项目。
在教学过程中,注重理论与实践相结合,鼓励学生动手实践和团队协作,以达到预期的学习成果。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高编程能力和综合素质。
1. Java基本语法与面向对象编程:回顾Java基本语法,重点讲解面向对象编程思想,包括类与对象、封装、继承和多态等概念。
相关教材章节:第一章至第三章2. Java GUI编程:介绍Java图形用户界面编程,使用Swing库设计界面,包括窗口、按钮、菜单等组件的使用。
相关教材章节:第六章3. 二维数组与棋盘设计:讲解二维数组的定义和使用,运用二维数组实现棋盘的设计与棋子的存储。
相关教材章节:第四章4. 象棋游戏规则与逻辑编写:分析象棋游戏的基本规则,指导学生编写相关逻辑代码,实现棋子的移动、吃子等功能。
相关教材章节:第五章5. 课程项目实践:分组进行项目实践,学生根据教学大纲和进度,合作完成象棋游戏的设计与实现。
相关教材章节:第七章6. 代码优化与调试:教授学生如何优化代码,进行调试,提高程序的稳定性和运行效率。
目录摘要 (1)关键字 (1)正文 (2)1、程序设计说明 (2)1.1 程序的设计及实现 (2)1.1.1搜索引擎的实现(engine包) (2)1.1.2信息传输机制(message包) (3)1.1.3棋子(pieces包) (3)1.2 主控模块(main包) (3)2、运行结果 (5)3、设计体会 (6)附件 (7)程序代码 (7)参考文献资料 (41)1中国象棋对弈系统Java语言程序设计实验报告实验项目名称:中国象棋对弈系统作者姓名与单位:李非计算机101摘要:本文主要是运用java实现具有一定功能的中国象棋对弈系统软件,主要功能如下:a、象棋对弈:红方先走,然后黑方再走,红黑交替,直到一方获胜。
b、新游戏:任何时候可以重新开始一盘新的对弈。
c、悔棋:当走错棋的时候可以悔棋。
d、信息提示:提示当前信息状态。
e、简单的帮助文档:象棋规则介绍、软件的简单介绍和编制说明关键词:java、中国象棋对弈系统2正文:一程序设计说明1.1程序的设计及实现本系统主要有以下4个模块,每个模块对应一个程序包:1、engine:搜索引擎包,系统的核心部分。
2、message:网络对战过程中各种消息及其传递机制的类实现包。
3、main:主界面实现包。
4、pieces:棋子及其相关类实现包。
现就各个包中的要点给与说明。
1.1.1 搜索引擎的实现(engine包)(1) BitBoard.java:位棋盘的实现,见2.4节。
(2) CCEvalue.java:评价函数知识类。
本程序使用开源软件“梦入神蛋”的快速评价函数。
该函数包含子力价值和棋子所在位置的奖励值。
子力价值分别是:帅-0, 仕- 40, 象-40, 马-88, 车-200, 炮-96, 兵-9。
帅是无价的,用0表示。
以马为例,位置的奖励值如下:0,-3,5,4,2,2,5,4,2,2,-3,2,4,6,10,12,20,10,8,2,2,4,6,10,13,11,12,11,15,2,0,5,7,7,14,15,19,15,9,8,2,-10,4,10,15,16,12,11,6,2,0,5,7,7,14,15,19,15,9,8,2,4,6,10,13,11,12,11,15,2,-3,2,4,6,10,12,20,10,8,2,0,-3,5,4,2,2,5,4,2,2上面的每行代表棋盘的一条纵线。
中国象棋课程设计java一、课程目标知识目标:1. 掌握中国象棋的基本规则,如棋子的种类、走法、胜负判定等;2. 学会使用Java语言实现中国象棋的基本功能,如棋盘的绘制、棋子的移动、胜负判断等;3. 了解中国象棋的文化背景和起源,提高对传统文化的认识。
技能目标:1. 培养学生的编程能力,使其能够运用Java语言解决实际问题;2. 提高学生的逻辑思维能力,通过编写代码实现中国象棋的规则;3. 培养学生的团队协作和沟通能力,分组合作完成中国象棋程序的编写。
情感态度价值观目标:1. 培养学生对传统文化的热爱,增强民族自豪感;2. 培养学生勇于挑战、克服困难的意志品质,提高自信心;3. 培养学生遵守规则的意识,养成良好的竞技态度。
课程性质:本课程结合了传统文化、编程语言和逻辑思维,旨在提高学生的综合素质。
学生特点:学生处于中学阶段,具有一定的逻辑思维能力和编程基础,对中国象棋有一定了解。
教学要求:注重实践操作,引导学生运用所学知识解决问题,培养学生团队协作能力和创新精神。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估和调整。
二、教学内容1. 中国象棋基础知识:介绍中国象棋的起源、发展历程、棋盘结构、棋子种类及走法等,让学生全面了解中国象棋的基本构成。
相关教材章节:第一章《中国象棋概述》2. Java编程基础:回顾Java语言的基本语法、数据类型、控制结构、面向对象编程等知识,为后续编写中国象棋程序打下基础。
相关教材章节:第二章《Java语言基础》3. 棋盘绘制:学习Java图形用户界面(GUI)编程,掌握如何使用Java绘制中国象棋棋盘。
相关教材章节:第三章《Java图形用户界面编程》4. 棋子移动与规则实现:学习如何使用Java实现棋子的移动、判断胜负等规则。
相关教材章节:第四章《Java事件处理》和第五章《Java多线程编程》5. 中国象棋程序设计:分组合作,综合运用所学知识,编写具有基本功能的中国象棋程序。
java课程设计中国象棋一、课程目标知识目标:1. 让学生掌握中国象棋的基本规则和棋谱表示方法。
2. 帮助学生理解面向对象编程的基本概念,如类、对象、继承、封装等。
3. 引导学生运用Java语言实现中国象棋的基本功能,包括棋子的移动、胜负判断等。
技能目标:1. 培养学生运用Java编写程序解决问题的能力,提高编程技巧。
2. 培养学生对中国象棋的逻辑思考和策略运用能力。
3. 培养学生团队协作、沟通表达的能力,共同完成课程设计任务。
情感态度价值观目标:1. 激发学生对计算机编程和中国象棋的兴趣,提高学习积极性。
2. 培养学生勇于尝试、不断探索的精神,面对困难和挑战时不轻言放弃。
3. 增强学生的民族自豪感,传承和弘扬中华优秀传统文化。
课程性质分析:本课程为Java程序设计课程,结合中国象棋项目,旨在让学生在实践中掌握编程技能,提高解决问题的能力。
学生特点分析:学生处于高中年级,具备一定的编程基础和逻辑思维能力,对中国象棋有一定了解,具备较强的学习能力和团队合作精神。
教学要求:1. 教师应注重理论与实践相结合,引导学生运用所学知识解决实际问题。
2. 关注学生的个体差异,给予个性化指导,提高学生的编程能力。
3. 创设互动、讨论的学习氛围,培养学生的团队协作能力和创新精神。
4. 对课程目标进行分解,明确具体的学习成果,便于教学设计和评估。
二、教学内容1. 中国象棋基本规则及棋谱表示方法- 中国象棋的棋盘、棋子及其走法- 棋谱的记录和表示方式2. 面向对象编程基本概念- 类的定义、对象创建、属性和方法- 继承、封装、多态等特性3. Java编程基础- Java基本语法、数据类型、运算符- 控制结构、数组、字符串等4. 中国象棋程序设计- 设计棋盘类、棋子类、游戏规则类- 实现棋子的移动、胜负判断等功能5. 教学大纲与进度安排- 第一周:中国象棋基本规则及棋谱表示方法学习- 第二周:面向对象编程基本概念复习- 第三周:Java编程基础复习及实践- 第四周:设计棋盘类、棋子类、游戏规则类- 第五周:实现棋子的移动、胜负判断等功能- 第六周:课程设计总结、展示与评价教材章节关联:1. 《Java程序设计》第1-3章:Java基本语法、数据类型、运算符2. 《Java程序设计》第4-6章:面向对象编程基本概念3. 《中国象棋入门与提高》:中国象棋基本规则及棋谱表示方法教学内容组织:以项目为导向,将中国象棋与Java编程知识相结合,分阶段进行教学,逐步实现课程目标。
课程名称:JAVA课程设计题目:“网络象棋”游戏的设计与开发系名:信息工程系专业班级:软件工程姓名:学号:指导教师:2012年6 月18日课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程系设计题目:“网络象棋”游戏的设计与开发初始条件:《网络象棋》,网络版的棋类游戏。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个网络版的象棋游戏。
该游戏包括网络功能,棋盘功能和辅助功能。
本系统使用JAVA SWING技术和事件处理机制进行棋盘界面的设计,开发和功能实现, 使用Socket网络编程和多线程技术进行多客户端之间的对战。
系统总体架构如下:系统功能点说明如下:设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:“即时通”网络通信系统的设计与开发【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP【开发工具】NetBeans IDE【完成时间】2012.6 .4-----2012.6.15【需求分析】分析阐述要实现的系统应具有什么样的功能。
【系统总体设计方案】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。
让读者了解方案的总体设计和关键技术。
要阐述自己的设计方案,说明为什么要选择或设计这样的方案。
具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图;各功能模块所要达到的设计目标的简单介绍;设计的数据字典(数据库、表的结构);使用的设计软硬件环境和开发技术和平台等。
【系统详细设计】在这部分中,要将整个开发工作的内容进行详细的介绍。
一般按照功能模块分成几部分来介绍。
每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。
【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。
测试:介绍如何测试系统,测试中发现的问题和解决方案。
目录1.绪论 (2)1.1引言 (2)1.2主要设计内容 (3)2.开发工具简介 (3)2.1 java语言概述 (3)2.2 java语言的特点 (4)2.3 关于ECLIPSE (5)3.程序设计需求分析 (7)3.1任务概述 (7)3.2综合要求 (7)3.3 设计基本要求 (7)4.程序的总体设计 (8)4.1线程的设计 (8)4.2线程的生命周期 (9)5.程序的详细设计 (11)5.1程序流程图 (11)5.2数据字典 (12)5.3运行结果及界面 (16)6.实验总结 (18)参考文献 (18)附录(部分源代码) (19)1.绪论1.1引言象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利。
国际象棋软件有着成功的商业运作,已发展成一种产业。
然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。
在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。
例如 B. Moreland,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,他的一系列关于国际象棋程序设计的文章非常值得其他棋类程序设计人员借鉴。
然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,需要对其加以改进和创新。
1.2主要设计内容本课题采用Java语言编写这个中国象棋对弈系统程序。
主要工作内容:搜集相关资料,准备参考资料,学习掌握开发方法、开发工具,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理。
课程设计报告课程名称:Java程序设计设计题目:中国象棋棋谱设计专业:信息与计算科学班级:信111**:***学号:**********指导教师:***河北建筑工程学院数理系2014 年5 月5 日一、基本界面设计:1.棋子的设计;(1)声明一个ChessPiece类,完成各个棋子的外观设计;public class ChessPiece extends JLabel{String name;Color backColor=null,foreColor;String 颜色类别=null;ChessBoard board=null;{int j=0;for(j=minJ+1;j<=maxJ-1;j++){if(point[startI][j].isPiece()){可否走棋=false;break;} }if(j==maxJ){可否走棋=true;}}else if(startJ==endJ) { int i=0;for(i=minI+1;i<=maxI-1;i++) { if(point[i][startJ].isPiece()){可否走棋=false;break;} }if(i==maxI){可否走棋=true;}}else{可否走棋=false;}}else if(piece.getName().equals("马"))…..//以及各个棋子规则的设计(5)实现棋子按对弈规则的移动并记录棋子移动的位置;界面如下:e=SwingUtilities.convertMouseEvent(piece,e,this); } if(e.getSource()==this){if(move&&piece!=null){x=e.getX(); y=e.getY();if(红方走棋&&((piece.棋子类别()).equals(红方颜色))){piece.setLocation(x-piece.getWidth()/2,y-piece.getHeight()/2);}if(黑方走棋&&(piece.棋子类别().equals(黑方颜色))){ piece.setLocation(x-piece.getWidth()/2,y-piece.getHeight()/2);}}}} public void mouseReleased(MouseEvent e){ …}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mouseClicked(MouseEvent e){ }}2.图中中国象棋是个菜单包括制作棋谱、保存棋谱、演示棋谱三个菜单项(1)保存棋谱设计界面为:当你制作棋谱文件时可以选择路径保存棋谱文件(2)演示棋谱设计界面为:A.可以从文件中选择你要演示的棋谱文件B选择文件后开始演示棋谱文件自动演示中可以按照你设计棋谱时的步骤一次生成保存的棋谱文件,也可以设置时间间隔,使得生成文件时一步和下一步的时间安装你设置的时间进行,也可以收手动操作,一步一步的进行。
广西科技大学鹿山学院面向对象程序设计实训报告题目:网络中国象棋系别:电气与计算机工程系专业班级:计软141班姓名:邓康言学号: 20141409成绩评定:指导教师签字:2016 年 1 月10 日目录目录1、需求分析1.1 开发的背景·中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们的工作地点从、时间的限制,原始的那种面对面的下棋方式已经不再适应人们的生活,人们已经开始走向网络象棋博弈·网络象棋有着很多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋爱好者,甚至是不认识。
网络让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。
1.2 算法·指定服务器端口号·支持多人同时在线··显示在线用户信息·显示当前在线所有用户·从在线用户列表中选择玩家进行挑战·接受或拒绝挑战1.3 要求·用Java语言实现系统,源程序要有适当的注释,使程序容易阅读·函数功能要划分好(结构化程序设计)·可以增加新功能模块2、总体分析与设计2.1 总体设计方案·系统功能模块图:2.2 功能描述2.2.1服务器端·可以指定服务器端口号。
·可以支持多人同时在线。
·可以显示在线用户信息。
·不允许玩家同名2.2.2客户端·能够通过主机IP号及端口号登陆到服务器。
·可以显示当前在线所有用户。
·可以从在线用户列表中选择玩家进行挑战。
·可以接受或拒绝挑战。
·如果对方在和其他玩家对弈中,则应该给与相应的提示信息。
·象棋规则一定要严密。
·棋子样式采用最普通的橡胶式象棋。
棋子为黑色,字为红色和白色2.3 算法设计----本程序功能模块根据程序设计的需要。
综合程序的实用性、智能化的考虑。
JAVA实现中国象棋课程设计一、课程目标知识目标:1. 学生能理解中国象棋的基本规则及棋盘布局,掌握棋子的基本移动方法。
2. 学生能运用Java语言实现中国象棋的基本功能,包括棋子的初始化、移动、判断胜负等。
3. 学生能理解面向对象编程思想,运用类和对象的概念对中国象棋进行建模。
技能目标:1. 学生能运用Java编程语言编写完整的中国象棋程序,具备一定的编程实践能力。
2. 学生能通过分析问题、设计算法,提高解决问题的能力。
3. 学生能运用所学知识,对中国象棋进行创新性拓展,提高实际操作能力。
情感态度价值观目标:1. 学生通过学习Java实现中国象棋,培养对中国传统文化的兴趣和热爱。
2. 学生在团队合作中,学会相互沟通、协作,培养团队精神。
3. 学生在编程过程中,遇到问题能积极思考、勇于克服困难,培养良好的学习习惯和自主学习能力。
课程性质:本课程为信息技术学科课程,结合中国象棋传统文化,让学生在掌握编程技能的同时,了解和传承我国优秀传统文化。
学生特点:学生处于初中年级,具备一定的编程基础和逻辑思维能力,对中国传统文化有一定的了解。
教学要求:教师应注重理论与实践相结合,引导学生运用所学知识解决实际问题,关注学生的个体差异,提高学生的编程能力和综合素质。
通过本课程的学习,使学生能够将所学知识运用到实际生活中,培养创新意识和实践能力。
二、教学内容1. 中国象棋基本知识介绍:包括棋盘布局、棋子种类及走法、胜负判定规则等,结合课本相关章节,让学生了解中国象棋的基本玩法。
2. Java编程基础回顾:复习Java基本语法、面向对象编程思想、类与对象的概念,为后续编写中国象棋程序打下基础。
3. 中国象棋程序设计:a. 棋盘类的设计:定义棋盘大小、棋子布局等属性和方法。
b. 棋子类的设计:定义每种棋子的属性(如名称、颜色、移动规则等)和方法(如移动、判断合法性等)。
c. 游戏控制类的设计:实现游戏开始、结束、切换玩家、判断胜负等功能。
java-中国象棋课程设计一、课程目标知识目标:1. 了解中国象棋的基本规则和历史背景;2. 掌握Java编程语言的基本语法和面向对象编程思想;3. 学会使用Java编写中国象棋游戏的界面和基本功能;4. 理解游戏设计中涉及的数据结构和算法。
技能目标:1. 能够运用Java语言编写出具有基本功能的中国象棋游戏;2. 培养学生的编程思维和解决问题的能力;3. 学会运用面向对象的方法对现实问题进行分析、设计和实现;4. 提高学生的团队协作和沟通能力。
情感态度价值观目标:1. 培养学生对传统文化的兴趣和热爱,增强民族自豪感;2. 激发学生学习编程的兴趣,提高信息素养;3. 培养学生勇于尝试、不断探索的精神,增强克服困难的信心;4. 引导学生树立正确的价值观,认识到团队合作的重要性。
本课程针对的是具有一定Java编程基础的学生,结合中国象棋这一传统文化元素,旨在提高学生的编程能力和综合素质。
课程注重实践性和趣味性,让学生在完成项目的过程中,掌握编程技能,培养团队协作能力,同时深入理解中国象棋文化。
通过本课程的学习,学生将能够独立完成一个具有基本功能的中国象棋游戏,并在实践中不断提高自己的编程水平。
二、教学内容1. 中国象棋基本规则与历史:介绍中国象棋的起源、棋盘布局、棋子种类及走法、胜负判定等基本知识。
2. Java基本语法复习:回顾Java基本数据类型、控制结构、数组、类与对象等基础知识。
3. 面向对象编程:重点讲解封装、继承、多态等面向对象编程思想,并应用于中国象棋游戏设计。
- 棋盘类设计- 棋子类设计- 玩家类设计4. Java图形用户界面设计:介绍Swing图形用户界面库,实现中国象棋游戏界面设计。
- 棋盘界面绘制- 棋子图形显示- 鼠标事件处理5. 数据结构与算法:分析中国象棋游戏中的数据结构(如棋盘表示、棋子状态)和算法(如棋子移动、胜负判定)。
6. 游戏功能实现:根据面向对象设计,编写代码实现以下功能:- 棋子移动- 悔棋- 胜负判定- 人机对战(可选)7. 团队协作与项目实施:分组进行项目实践,培养学生的团队协作能力和沟通技巧。
贵州航天职业技术学院Java课程设计报告————中国象棋专业:软件技术班级:软件(1)班学号: A093GZ053020129姓名:龚吉祥指导老师:肖宏启时间: 2011 – 6 - 01目录摘要21绪论 (3)1. 1休闲类游戏开发简述 (3)1. 2中国象棋发展现状 (4)2相关技术简介 (4)2. 1面向对象程序设计方法 (5)2. 2 Java技术 (5)3需求分析 (5)3. 1系统功能需求 (5)3. 2系统功能实现分析 (5)3. 3小结 (6)4系统总体设计 (6)4. 1设计内容 (6)4. 2系统结构图 (7)4. 3游戏流程图 (9)5系统实现与测试 (11)5. 1系统开发环境 (11)5. 2系统实现 (11)5. 3系统测试 (21)6总结 (21)参考文献 (21)附录 (25)摘要【摘要】随着信息技术的飞速发展和日趋激烈的商业竞争,企业已不再满足于独立、零散的办公自动化应用,企业需要的是协同工作、综合、集成化的解决方案。
而网络是解决由于物理距离造成的信息交流不畅、协商沟通不便的办公瓶颈问题的最佳方式。
企业网上办公自动化通过对各办公自动化要素的闭环整合,实现了工作流、信息流、知识流和办公自动化系统的整合管理,提供了一个科学、开放、先进的信息化办公平台,实现办公自动化,并进行远程办公或在家办公。
企业网上办公自动化将人从繁琐、无序、低序、低端的工作中解放出来从事核心事务,整体提高了单位办事效率和对信息的可控性,降低办公成本,提高执行力,使管理趋于完善。
中国象棋被誉为中国的国粹,从诞生到现在已经成为国人最喜欢的棋类竞技游戏,对青少年的影响也是很广泛。
双方在象棋的对弈过程中,体验着智慧和快乐,可以说中国象棋游戏完全代表了博弈游戏。
中国象棋游戏的设计工作是非常复杂和重要的,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。
在这个游戏的设计中,将牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中还会应用类的继承机制以及一些设计模式。
如何设计和开发好中国象棋游戏,对与提高Java开发水平和系统的设计能力有极大的帮助。
在设计开发过程中,开发者需要处理好各个类之间的集成关系,还要处理各个类的相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。
本文主要研究基于Java 技术的中国象棋游戏的分析与设计,对中国象棋游戏特殊的行棋规则给予了细致的分析与理解,设计出了一种实时可行的行棋规则,从移动范围、移动方向和穿越障碍几个方面重新描述行棋规则,基于Java技术通过计算机模拟实现了中国象棋特殊的行棋规则算法,设计出了一种可行的方法,使每个棋子的行棋路线都严格遵循本身的行棋规则,游戏的实战对弈得以实现,通过实验运行,证明这种限定棋子行棋路线的方法是可行的,并得到了预期的目标。
【关键词】象棋,棋谱,棋子,棋子类别。
1 绪论:1.1休闲类游戏开发简述休闲类游戏(Casual Game)可以包含任何游戏类型的游戏性要素,通常休闲游戏的游戏规则相对简单,无需特别的技巧,也不需要较长的时间就能完成游戏。
休闲游戏经常出现在不同的平台上,包括家用游戏机、掌上游戏机和个人电脑上等等。
休闲类游戏通常也适合于各种不同性别、地域和文化的玩家群体。
本文所涉及的游戏项目,是一款棋类休闲游戏,基于Windows 平台,无需较长的时间就能完成一局的游戏,一局游戏一般在 5 到20 分钟左右就能完成。
根据该局游戏玩家的游戏策略等因素,一局游戏的完成时间会有一定差别。
在游戏开发团队中,团队成员主要有制片人等管理人员、程序员、美术(本文中的美术一词代表的是美术制作人员,在一些游戏公司中用美术这个词,而不用美工这个词)和策划(游戏设计师)。
通常还需要音乐制作人员,但在多数公司中,主要的音乐制作任务都会交由独立音乐制作人或者专门的音乐制作公司完成。
早期传统的游戏程序是大多都是单线程执行的,这是由于游戏软件本身的内在逻辑,以及需要较高的实时交互性。
如下一页的图所示,说明了通常一个游戏软件的运行流程。
在程序初始化阶段,进行内存分配,从硬盘读取资源,建立相关的辅助结构等。
接下来进入游戏主循环不停的循环运行直到接收到退出游戏的指令或者消息。
在主循环中,首先接收玩家的输入,然后根据游戏内部规则改变游戏的状态,然后进行图形图像处理,输出一帧游戏画面,接下来根据帧速率和游戏速度的要求,等待一段时间后继续执行主循环或者直接开始下一个循环。
1.2中国象棋发展现状:中国象棋发展至今已有二千三、四百年的历史了,早在战国时期就有正式记载,堪称中国的国粹。
据统计,中国有2亿人会下中国象棋,这相当于平均6至7个人中就有1人会下,可见它有着广泛的群众基础。
方寸之间包含天地玄机,人生哲理,使人越是细玩越觉其味悠然深远。
简单的棋规,便捷的载体,使得他成为雅俗共赏的竞技项目。
然而,如今中国象棋的发展前景却令人堪忧。
导致这种现象的主要因素有:第一,就东亚地区,围棋的影响力胜于中国象棋。
第二,中国象棋虽然在国内很受欢迎,但在世界舞台上名声却不如国际象棋那么响亮。
之所以会存在这两个因素,都是因为在国际赛事上中国象棋的参赛选手大都是华人,而非华裔的选手又大都是业余选手,这无疑使比赛失去了竞争力,而围棋有韩国和日本的参与,国际象棋有全世界国家的加入。
第三,进入了21世纪后,供人们娱乐活动的选择越来越多,中国象棋在年轻人的心中已开始渐渐失去魅力。
各种中国象棋软件的开发与应用,尤其是在网络方面的推广,使得中国象棋得到了很好的宣传,全面展示了中国象棋的风采、优点与特色,同时也让外国人认识到中国象棋这一我国的“国粹”。
中国象棋打谱系统正是为这一可行性而开发设计的,玩家可以通过它很好的研究棋谱,学习中国象棋技术,提高水平。
想必在未来的几年随着中国象棋在各个领域的推广,必定会带来巨大的影响和经济效益。
2 相关技术简介:2.1面向对象程序设计方法:Java面向对象程序设计的基本思想是通过构造和组织对象来求解问题的。
对象是很好理解的,任何一种物体都可以被认为是对象,例如,汽车就是一种对象。
对象具有两个最基本的属性:具有一定的物质基础和一定的功能,这两种基本属性在Java语言中表现为拥有一定的存储单元并具备一定的功能。
理解了Java的这种面向对象程序设计的基本思想之后,在以后的编程过程中,就应当个构造人们容易理解的更接近于真实物理世界物体的对象。
Java面向对象程序设计的过程非常简单。
这里介绍一种自顶向下的程序设计方法,首先构造一个类来处理需要解决的问题,然后根据已经拥有的类(例如以前求解其它问题时实现的类),分析和构造新的类,设法将问题分解下去,而最开始构造的类通过组织这些新构造的类、已有的类及由他们生成的实例来求解指定的问题。
这个过程可以继续递归下去,用在新构造的类上,直到最后解决了指定的问题,例如Java的应用程序和小应用程序都必须有一个类作为入口求解问题。
在计算机语言中,面向对象的类一般具有三个基本特性:封装性、继承性和多态性,这三种特性进一步简化了Java求解模型,提高了程序的复用性,节省了程序的代码量,从而提高了软件的生产率。
2.2Java技术:图形用户界面不仅可以提供各种数据的基本图形的直观表示形式,而且可以建立友好的交互方式,从而使计算机软件可以设计得十分简单易用。
从Java语言诞生到现在,Java语言已经提供了两代图形用户界面。
第一代图形用户界面A WT提供了基本的图形用户界面,它强烈地依赖于具体的计算机操作系统,而且缺少基本的剪贴板和打印支持功能。
现在第二代图形用户界面Swing对A WT进行了扩展,Swing不仅在功能上比A WT强大,而且在很大程度上克服了A WT的上述缺点,它所设计的图形用户界面与具体的计算机操作相关性很小,而且可以定制指定的操作系统风格的图形用户界面。
GUI(图形用户界面)组件构成了图形用户界面的基础。
在Java程序设计中,要求按照一定的布局方式将组件安排在容器中,然后通过事件处理的方式实现人机交互,而容器本身也是组件,这样在容器中也可以含有容器,从而可以通过这种嵌套方式方便地组合各种组件。
事件处理模型是Java语言提供的一种人机交互模型,它使得用户能够通过鼠标、键盘或其他输入设备来控制程序的执行流程,从而达到人机交互的目的。
对鼠标、键盘或其他输入设备的各种操作一般也称为事件。
Java语言对这些事件的处理模型是采用面向对象的方法,即通过对象的形式把各种事件进行封装和处理。
这种事件处理模型的三个基本要素是事件源、事件对象以及事件监听器。
事件源是各种组件,是接受各种事件的对象。
在各种事件源上运用鼠标、键盘或其他输入设备进行各种操作,就会有事件发生。
每种操作一般都对应着事件,Java语言通过事件对象来包装这些事件。
对事件进行处理是通过事件监听器实现的。
因为鼠标事件也是一种事件,所以对鼠标事件进行处理要遵循事件处理模型。
鼠标事件的处理也是建立在事件源的基础之上,以事件对象本身,最后通过事件监听器进行处理。
类java.awt.event.MouseEvent包装常用的鼠标事件,例如,按下鼠标键和放开鼠标键等。
类MouseEvent的实例对象记录了鼠标的当前位置和状态发生变化的鼠标键等。
对鼠标事件进行处理最关键的是实现事件监听器接口。
这些相关接口包括MouseListener,MouseMotionListener,MouseWheelListener,MouseInputListener。
前面三个是包java.awt.event 中的接口,最后一个接口MouseInputlistener来自包javax.swing.event。
接口Java.awt.event.MouseListener主要用来处理按下鼠标键、放开鼠标键、单击鼠标键、鼠标进入组件内和鼠标离开组件区域等事件。
对鼠标事件进行处理,就是要设计类,实现上面的鼠标事件监听器接口,然后在事件源中注册处理鼠标事件监听器的对象,以便对鼠标事件进行处理。
3 需求分析3.1系统功能需求:象棋盘由九道直线和十道横线交叉组成,棋盘上共有九十个交叉点,象棋子就摆放和活动在这些交叉点上。
棋盘中间没有划通直线的地方,叫做“河界”;划有交叉线的地方,叫做“九宫”。
九道直线,红棋方面从右到左用中文数字一至九来代表,黑棋方面从右到左用阿拉伯数字1至9来表示。
棋子共有三十二个,分为红、黑两组,每组十六个,各分七种,其名称和数目如下:红棋子:帅一人,车、马、炮、相、士各两个,兵五个。
黑棋子:将一个,车、马、炮、象、士各两个,卒五个。
在对局时,由执红棋的一方先走,双方轮流各走一着,直至分出胜负或走成和棋为止。
轮到走棋的一方,将某个棋子从一个交叉点到另一个空着的交叉点,或者吃掉对方的棋子而占领叉点,都算走了一着。