计算机中国象棋打谱系统java语言毕业设计内附详细的java程序.docx
- 文档编号:2903113
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:37
- 大小:214.62KB
计算机中国象棋打谱系统java语言毕业设计内附详细的java程序.docx
《计算机中国象棋打谱系统java语言毕业设计内附详细的java程序.docx》由会员分享,可在线阅读,更多相关《计算机中国象棋打谱系统java语言毕业设计内附详细的java程序.docx(37页珍藏版)》请在冰豆网上搜索。
计算机中国象棋打谱系统java语言毕业设计内附详细的java程序
1.绪论
1.1引言
象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利。
国际象棋软件有着成功的商业运作,已发展成一种产业。
然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。
在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。
例如B.Moreland,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,他的一系列关于国际象棋程序设计的文章非常值得其他棋类程序设计人员借鉴。
然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,需要对其加以改进和创新。
1.2主要设计内容
本课题采用Java语言编写这个中国象棋对弈系统程序。
主要工作内容:
搜集相关资料,准备参考资料,学习掌握开发方法、开发工具,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理。
2.开发工具简介
2.1java语言概述
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新。
2.2java语言的特点
Java语言是一个支持网络计算的面向对象程序设计语言。
Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。
主要特性如下:
1.Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2.Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3.Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4.Java语言是健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5.Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6.Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7.Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8.Java语言是解释型的。
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9.Java是高性能的。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10.Java语言是多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11.Java语言是动态的。
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
2.3关于ECLIPSE
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
3.程序设计需求分析
3.1任务概述
用java实现具有一定功能的中国象棋对弈软件,主要功能如下:
a.象棋对弈:
红方先走,然后黑方再走,红黑交替,直到一方获胜。
b.新游戏:
任何时候可以重新开始一盘新的对弈。
c.悔棋:
当走错棋的时候可以悔棋。
d.信息提示:
提示当前信息状态。
e.简单的帮助文档:
象棋规则介绍、软件的简单介绍和编制说明。
3.2综合要求
1.硬件配置
CPU:
≥Pentium41.6G
内存:
≥512MB
硬盘剩余空间:
≥2GB
2.软件环境
操作系统:
MicrosoftWindowsXP
安装Sun公司的Java运行环境JRE1.5,安装Java开发工具包(JDK1.5)及ECLIPSE
3.3设计基本要求
1.中国象棋是双方在由9条和10条横线分割而成的棋盘对弈。
竖线与横线的交叉点称做棋点,每个棋子都放置在棋点上,而不是方格中。
河界将棋盘分为两个等分=份,没一边都有一个由9个点组成的区域“将”,“帅”,“士”只能在“九宫”内移动,并且“将”,“帅”,的每一步只可以水平或垂直移动一个棋点。
士:
“士”只能在“九宫”内移动,并且每一步只可以沿对角线方向移动一个棋点。
象;一步必须沿对角线方向走两个棋点。
但它既不能过河,也不能跳过或穿越障碍,即象征走的过程不能被“别眼”。
马:
每一步只可以水平或垂直移动一个棋点。
但它必须沿对角线方向,向左或向右移动,中国象棋的马不能跳过障碍,即在走的过程不能被“别腿”。
车:
可以沿水平或垂直方向移动任意个无障碍的点。
炮:
行走规则和车很类似,但它必须跳过一个棋子来吃掉对方的一个棋子。
被跳过的棋子被称为桥或者屏风。
兵:
过河前每步只能向前移动一个棋点。
过河后,它便增加了向左右移动的能力。
并不允许向后移动。
2.单击“中国象棋”菜单可以选择“制作棋谱”,“保存棋谱”和“演示棋谱”菜单项。
3.选择“制作棋谱”,将出现相应的棋盘,该棋盘可进行实战对弈,可以随时选择“保存棋谱”,将对弈过程保存成一个棋谱文件。
选择“演示棋谱”将显示打开文件对话框供用户选择以保存的棋谱文件。
选择棋谱文件后,将显示用来演示棋谱的棋盘,用户可以选择自动或者手动来演示对弈过程。
4.程序的总体设计
4.1线程的设计
在Java中,创建线程的方法有两种:
一种是通过创建Thread类的子类来实现;另一种是通过实现Runnable接口的类来实现。
这两种创建线程方法并没有本质上的区别,但是由于Java不允许多重继承,所以当一个类要继承另一个非Thread类而实现多线程的话,只能通过实现Runnable接口的方式来实现。
通过Thread类实现
定义一个线程类,他继承类Thread并重写其中的run()方法。
这时在初始化这个类的实例时,目标对象target可以为null,表示这个实例本身具有线程体。
由于Java只支持单继承,用这种方法定义的类不能再继承其他类。
Thread类定义的用来帮助管理线程的方法主要包括以下内容。
●voidrun()方法:
线程的入口点,运行线程中的代码。
●voidstart()方法:
通过调用运行方法来启动线程,使之由出生状态转入就绪状态。
●voidsleep(longmilis):
在一段时间内挂起线程,令线程睡眠,在此期间,线程不消耗CPU资源;以毫秒为单位。
●voidinterrupt():
中断线程。
●booleanisAlive():
判定线程是否仍在在运行,出于活动状态。
●voidstName(StringthreadName):
改变线程的名字。
●StringgetNa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 中国象棋 打谱 系统 java 语言 毕业设计 详细 程序