三一文库(www.31doc)
〔中国象棋下法之如何打谱〕
*篇一:中国象棋打谱系统
摘要
中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法相比的,大致国际、国内比赛,小至社区街道。如今,仅中国就有两亿人会下中国象棋,且中国象棋的发展趋势日益国际化。
Java游戏程序的开发是计算机运用的一个重要方面之一。游戏程序的发展几乎与计算机网络和软硬件技术的发挥在那个基本保持同步。游戏无论是开发过程还是运行过程,对它所以依赖的计算机硬件配臵的要求较高。本设计采用软件工程学方法设计并实现个了中国象棋打谱系统,该系统能够制作保存用户对弈过程,能重新演示绝对过程,及复盘。当然它也能遵守象棋的一切基本规则,实现人机对战,人与人对战等多方面功能。
【关键词】中国象棋,打谱,复盘,JAVA,软件工程
Abstract
摘要
中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法相比的,大致国际、国内比赛,小至社区街道。如今,仅中国就有两亿人会下中国象棋,且中国象棋的发展趋势日益国际化。
Java游戏程序的开发是计算机运用的一个重要方面之一。游戏程序的发展几乎与计算机网络和软硬件技术的发挥在那个基本保持同步。游戏无论是开发过程还是运行过程,对它所以依赖的计算机硬件配臵的要求较高。本设计采用软件工程学方法设计并实现个了中国象棋打谱系统,该系统能够制作保存用户对弈过程,能重新演示绝对过程,及复盘。当然它也能遵守象棋的一切基本规则,实现人机对战,人与人对战等多方面功能。
【关键词】中国象棋,打谱,复盘,JAVA,软件工程
Abstract
AsthequintessenceofacountryforChina,ithaspassedthousandsofyearssinceChineseChessdeveloped.OtherchesscouledntbecomparedwithitspopularzationinChina,formlargeinternationalornationlcompetitiontosmallerpiecescommunitystreet.ItisthedistillateofChinesepeopleswisdom.Now,thereare200millionpeoplecanpalyChineseChessonlyinChina.AndChineseChessisdevelopinginthewayofinternationalization.
JavaDevelopmentofthegameprogramisoneimportantASPectofcomputerapplications.ProceduresforthedevelopmentofthegamealmostremainthesamestepwithcomputerNETworkandsoftwaretechnologydevelopment.Whetherthedevelopmentprocessoroperationprocessofgame,ithastorelyonahighcomputerhardwareconfiguration.ThepaperdesignsanddevelopstheSpectrumsystemofChinesechesswithSoftwareEngineering.Andthesystemcancreateandmaintainagameprocessinordertore-demogameprecess,whichcalledchessboardresuming.Ofcourse,italsocancomplywithallthebasicchessrulesandachievemanyfunctions,suchashuman-machinewar,man-manwarandsoon.
【Keywords】ChineseChess,SpectrumFight,chessboardresuming,Java,
目录
1.引言
1.1主要设计...........................................................................................................................1
1.2主要内容............................................................................................................................1
1.3设计要求............................................................................................................................1
JavaDevelopmentofthegameprogramisoneimportantASPectofcomputerapplications.ProceduresforthedevelopmentofthegamealmostremainthesamestepwithcomputerNETworkandsoftwaretechnologydevelopment.Whetherthedevelopmentprocessoroperationprocessofgame,ithastorelyonahighcomputerhardwareconfiguration.ThepaperdesignsanddevelopstheSpectrumsystemofChinesechesswithSoftwareEngineering.Andthesystemcancreateandmaintainagameprocessinordertore-demogameprecess,whichcalledchessboardresuming.Ofcourse,italsocancomplywithallthebasicchessrulesandachievemanyfunctions,suchashuman-machinewar,man-manwarandsoon.
【Keywords】ChineseChess,SpectrumFight,chessboardresuming,Java,
目录
1.引言
1.1主要设计...........................................................................................................................1
1.2主要内容............................................................................................................................1
1.3设计要求............................................................................................................................1
2.开发平台
2.1Java软件概述..................................................................................................................3
2.2Java的特点......................................................................................................................3
2.3关于5
3.需求分析
3.1任务概述............................................................................................................................6
3.2设计基本要求...................................................................................................................6
4.总体设计
4.1线程的设计........................................................................................................................8
4.1.1通过Thread类实现.............................................................................................8
4.1.2实现Runnable接口.............................................................................................8
2.1Java软件概述..................................................................................................................3
2.2Java的特点......................................................................................................................3
2.3关于5
3.需求分析
3.1任务概述............................................................................................................................6
3.2设计基本要求...................................................................................................................6
4.总体设计
4.1线程的设计........................................................................................................................8
4.1.1通过Thread类实现.............................................................................................8
4.1.2实现Runnable接口.............................................................................................8
4.2线程的生命周期................................................................................................................9
4.2.1出生.......................................................................................................................9
4.2.2就绪.......................................................................................................................9
4.2.3运行.......................................................................................................................9
4.2.4阻塞.......................................................................................................................9
4.2.5死亡.....................................................................................................................10
5.详细设计
5.1程序流程图......................................................................................................................11
5.2运行结果及界面..............................................................................................................12
6.实验总结
致谢..............................................................................................................................................16
4.2.1出生.......................................................................................................................9
4.2.2就绪.......................................................................................................................9
4.2.3运行.......................................................................................................................9
4.2.4阻塞.......................................................................................................................9
4.2.5死亡.....................................................................................................................10
5.详细设计
5.1程序流程图......................................................................................................................11
5.2运行结果及界面..............................................................................................................12
6.实验总结
致谢..............................................................................................................................................16
参考文献...................................................................................................................................17
南昌工学院课程设计论文
1.引言
1.1主要设计
象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利。国际象棋软件有着成功的商业运作,已发展成一种产业。然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。
在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。例如B.Moreland,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,他的一系列关于国际象棋程序设计的文章非常值得其他棋类程序设计人员借鉴。然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,
南昌工学院课程设计论文
1.引言
1.1主要设计
象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利。国际象棋软件有着成功的商业运作,已发展成一种产业。然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。
在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。例如B.Moreland,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,他的一系列关于国际象棋程序设计的文章非常值得其他棋类程序设计人员借鉴。然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,
需要对其加以改进和创新。
1.2主要内容
本课题采用Java语言编写这个中国象棋对弈系统程序。
主要工作内容:搜集相关资料,准备参考资料,学习掌握开发方法、开发工具,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理。
1.3设计要求
中国象棋是双方在由9条和10条横线分割而成的棋盘对弈。竖线与横线的交叉点称做棋点,每个棋子都放置在棋点上,而不是方格中。河界将棋盘分为两个等分=份,没一边都有一个由9个点组成的区域“将”,“帅”,“士”只能在“九宫”内移动,并且“将”,“帅”,的每一步只可以水平或垂直移动一个棋点。士:“士”只能在“九宫”内移动,并且每一步只可以沿对角线方向移动一个棋点。象;一步必须沿对角线方向走两个棋点。但它既不能过河,也不能跳过或穿
1
*篇二:中国象棋打谱软件
中国象棋打谱软件
1.2主要内容
本课题采用Java语言编写这个中国象棋对弈系统程序。
主要工作内容:搜集相关资料,准备参考资料,学习掌握开发方法、开发工具,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理。
1.3设计要求
中国象棋是双方在由9条和10条横线分割而成的棋盘对弈。竖线与横线的交叉点称做棋点,每个棋子都放置在棋点上,而不是方格中。河界将棋盘分为两个等分=份,没一边都有一个由9个点组成的区域“将”,“帅”,“士”只能在“九宫”内移动,并且“将”,“帅”,的每一步只可以水平或垂直移动一个棋点。士:“士”只能在“九宫”内移动,并且每一步只可以沿对角线方向移动一个棋点。象;一步必须沿对角线方向走两个棋点。但它既不能过河,也不能跳过或穿
1
*篇二:中国象棋打谱软件
中国象棋打谱软件
1.设计内容
中国象棋打谱软件提供给用户的一个能将对弈过程保存成文件并可以重新演示对弈过程即复盘
2.设计要求
1中国象棋是双方在有着9条竖线和10条横线的棋盘上对弈的竖线与横线的交叉点称做棋点每个棋子都是在棋点上行走而不是在方格中行走河界将棋盘分成两个等份每一边都有一块由9个点组成的九宫棋子将帅士只能在九宫内移动
并且将帅每一步只可以水平或垂直移动一个棋点
士它只能在九宫内移动并且它每一步只可以沿对角线方向移动一个棋点
象它必须一步沿对角线方向走两个棋点但它既不能过河也不能跳过或穿越障碍即象在走的过程中不能被别眼
马每一步只可以水平或垂直移动一个棋点但必须按对角线方向向左或右移动中国象棋的马不能跳过障碍即在走的过程中不能被别腿
车可以水平或垂直方向移动任意个无阻碍的点
炮移动起来和车很类似但它必须跳过一个棋子来吃掉对方的一个棋子被跳过的那个棋子称
中国象棋打谱软件提供给用户的一个能将对弈过程保存成文件并可以重新演示对弈过程即复盘
2.设计要求
1中国象棋是双方在有着9条竖线和10条横线的棋盘上对弈的竖线与横线的交叉点称做棋点每个棋子都是在棋点上行走而不是在方格中行走河界将棋盘分成两个等份每一边都有一块由9个点组成的九宫棋子将帅士只能在九宫内移动
并且将帅每一步只可以水平或垂直移动一个棋点
士它只能在九宫内移动并且它每一步只可以沿对角线方向移动一个棋点
象它必须一步沿对角线方向走两个棋点但它既不能过河也不能跳过或穿越障碍即象在走的过程中不能被别眼
马每一步只可以水平或垂直移动一个棋点但必须按对角线方向向左或右移动中国象棋的马不能跳过障碍即在走的过程中不能被别腿
车可以水平或垂直方向移动任意个无阻碍的点
炮移动起来和车很类似但它必须跳过一个棋子来吃掉对方的一个棋子被跳过的那个棋子称
为桥或者屏风
兵每步只能向前移动一个棋点过河以后它便增加了向左右移动的能力兵不允许向后移动
2单击中国象棋菜单可以选择制作棋谱保存棋谱和演示棋谱菜单项
3选择制作棋谱将出现相应的棋盘该棋盘可进行实战对弈选择保存棋谱可以随时将对弈过程保存成一个棋谱文件棋谱文件的扩展名可以任意指定选择演示棋谱将出现打开文件对话框用来选择曾保存过的棋谱文件选择棋谱文件后将出现用来演示棋谱的棋盘用户可以选择自动或手动来演示对弈过程自动演示时还可以控制每步之间的间隔时间也可以暂停演示或继续演示等
3.中国象棋打谱软件共有8个Java源文件
Chess.java
该java文件的类负责创建中国象棋的主窗口该文件含有main方法程序从该类开始执行
ChessBoard.java
该文件生成的类负责创建对弈棋盘对象用户可以用鼠标拖动棋盘上棋子进行对弈
当松开鼠标时将棋子固定到棋点该棋盘使得用户不能将棋子拖放到非棋点上棋盘的Rule对象负责判断走棋是否遵守了中国象棋的规则例如马走日象走田小卒一去不回头等等如果用户
兵每步只能向前移动一个棋点过河以后它便增加了向左右移动的能力兵不允许向后移动
2单击中国象棋菜单可以选择制作棋谱保存棋谱和演示棋谱菜单项
3选择制作棋谱将出现相应的棋盘该棋盘可进行实战对弈选择保存棋谱可以随时将对弈过程保存成一个棋谱文件棋谱文件的扩展名可以任意指定选择演示棋谱将出现打开文件对话框用来选择曾保存过的棋谱文件选择棋谱文件后将出现用来演示棋谱的棋盘用户可以选择自动或手动来演示对弈过程自动演示时还可以控制每步之间的间隔时间也可以暂停演示或继续演示等
3.中国象棋打谱软件共有8个Java源文件
Chess.java
该java文件的类负责创建中国象棋的主窗口该文件含有main方法程序从该类开始执行
ChessBoard.java
该文件生成的类负责创建对弈棋盘对象用户可以用鼠标拖动棋盘上棋子进行对弈
当松开鼠标时将棋子固定到棋点该棋盘使得用户不能将棋子拖放到非棋点上棋盘的Rule对象负责判断走棋是否遵守了中国象棋的规则例如马走日象走田小卒一去不回头等等如果用户
的走法不符合规则棋子将被放回原处重新走着棋盘的
MakeChessManual对象负责记录棋谱当用户选择保存棋谱菜单时可以将该棋谱保存成文件另外该棋盘还能进行悔棋悔棋不被记录到棋谱
ChessPoint.java
该文件生成的类负责创建棋盘的棋点对象棋点对象可以判断该棋点上是否有棋子可以指定当前棋点上的棋子获取当前棋点上的棋子移掉当前棋点上的棋子
ChessPiece.java
该文件生成的类负责创建棋子对象并绘制棋子的外观棋子对象可以获取本身的颜
大小名字也可以设置和获取本身的类别红棋或黑棋
MakeChessManual.java
该文件生成的类负责创建记录棋谱的对象该对象可以将棋谱记录到一个链表中并在一个文本区中显示棋谱当对弈者悔棋时该对象将修改棋谱并更新文本区中的信息Rule.java
该文件生成的类负责为创建走棋法则对象该对象负责判断用户的走着是否遵守了中国象棋规则
Demon.java
MakeChessManual对象负责记录棋谱当用户选择保存棋谱菜单时可以将该棋谱保存成文件另外该棋盘还能进行悔棋悔棋不被记录到棋谱
ChessPoint.java
该文件生成的类负责创建棋盘的棋点对象棋点对象可以判断该棋点上是否有棋子可以指定当前棋点上的棋子获取当前棋点上的棋子移掉当前棋点上的棋子
ChessPiece.java
该文件生成的类负责创建棋子对象并绘制棋子的外观棋子对象可以获取本身的颜
大小名字也可以设置和获取本身的类别红棋或黑棋
MakeChessManual.java
该文件生成的类负责创建记录棋谱的对象该对象可以将棋谱记录到一个链表中并在一个文本区中显示棋谱当对弈者悔棋时该对象将修改棋谱并更新文本区中的信息Rule.java
该文件生成的类负责为创建走棋法则对象该对象负责判断用户的走着是否遵守了中国象棋规则
Demon.java
该文件生成的类负责创建棋谱演示对象该对象可以演示保存过的棋谱对象MakeStep.java
该类创建的对象负责记录一步走棋
4.运行效果
将8个java文件保存到一个文件夹中比如C\chess将8个Java文件分别编译生成相应的字节码(class)文件然后用java解释器运行主类
C\chess\javaChess
效果如图
对弈和保存棋谱
演示棋谱
*篇三:中国象棋打谱软件
中国象棋打谱软件
1.设计内容
中国象棋打谱软件提供给用户的一个能将对弈过程保存成文件并可以重新演示对弈过程即复盘
2.设计要求
该类创建的对象负责记录一步走棋
4.运行效果
将8个java文件保存到一个文件夹中比如C\chess将8个Java文件分别编译生成相应的字节码(class)文件然后用java解释器运行主类
C\chess\javaChess
效果如图
对弈和保存棋谱
演示棋谱
*篇三:中国象棋打谱软件
中国象棋打谱软件
1.设计内容
中国象棋打谱软件提供给用户的一个能将对弈过程保存成文件并可以重新演示对弈过程即复盘
2.设计要求
1中国象棋是双方在有着9条竖线和10条横线的棋盘上对弈的竖线与横线的交叉点称做棋点每个棋子都是在棋点上行走而不是在方格中行走河界将棋盘分成两个等份每一边都有一块由9个点组成的九宫棋子将帅士只能在九宫内移动
并且将帅每一步只可以水平或垂直移动一个棋点
士它只能在九宫内移动并且它每一步只可以沿对角线方向移动一个棋点
象它必须一步沿对角线方向走两个棋点但它既不能过河也不能跳过或穿越障碍即象在走的过程中不能被别眼
马每一步只可以水平或垂直移动一个棋点但必须按对角线方向向左或右移动中国象棋的马不能跳过障碍即在走的过程中不能被别腿
车可以水平或垂直方向移动任意个无阻碍的点
炮移动起来和车很类似但它必须跳过一个棋子来吃掉对方的一个棋子被跳过的那个棋子称为桥或者屏风
兵每步只能向前移动一个棋点过河以后它便增加了向左右移动的能力兵不允许向后移动
2单击中国象棋菜单可以选择制作棋谱保存棋谱和演示棋谱菜单项
3选择制作棋谱将出现相应的棋盘该棋盘可进行实战对弈选择保存棋谱可以随时将对弈过程
并且将帅每一步只可以水平或垂直移动一个棋点
士它只能在九宫内移动并且它每一步只可以沿对角线方向移动一个棋点
象它必须一步沿对角线方向走两个棋点但它既不能过河也不能跳过或穿越障碍即象在走的过程中不能被别眼
马每一步只可以水平或垂直移动一个棋点但必须按对角线方向向左或右移动中国象棋的马不能跳过障碍即在走的过程中不能被别腿
车可以水平或垂直方向移动任意个无阻碍的点
炮移动起来和车很类似但它必须跳过一个棋子来吃掉对方的一个棋子被跳过的那个棋子称为桥或者屏风
兵每步只能向前移动一个棋点过河以后它便增加了向左右移动的能力兵不允许向后移动
2单击中国象棋菜单可以选择制作棋谱保存棋谱和演示棋谱菜单项
3选择制作棋谱将出现相应的棋盘该棋盘可进行实战对弈选择保存棋谱可以随时将对弈过程
保存成一个棋谱文件棋谱文件的扩展名可以任意指定选择演示棋谱将出现打开文件对话框用来选择曾保存过的棋谱文件选择棋谱文件后将出现用来演示棋谱的棋盘用户可以选择自动或手动来演示对弈过程自动演示时还可以控制每步之间的间隔时间也可以暂停演示或继续演示等
3.中国象棋打谱软件共有8个Java源文件
Chess.javajava创建文件
该java文件的类负责创建中国象棋的主窗口该文件含有main方法程序从该类开始执行
ChessBoard.java
该文件生成的类负责创建对弈棋盘对象用户可以用鼠标拖动棋盘上棋子进行对弈
当松开鼠标时将棋子固定到棋点该棋盘使得用户不能将棋子拖放到非棋点上棋盘的Rule对象负责判断走棋是否遵守了中国象棋的规则例如马走日象走田小卒一去不回头等等如果用户的走法不符合规则棋子将被放回原处重新走着棋盘的
MakeChessManual对象负责记录棋谱当用户选择保存棋谱菜单时可以将该棋谱保存成文件另外该棋盘还能进行悔棋悔棋不被记录到棋谱
ChessPoint.java
3.中国象棋打谱软件共有8个Java源文件
Chess.javajava创建文件
该java文件的类负责创建中国象棋的主窗口该文件含有main方法程序从该类开始执行
ChessBoard.java
该文件生成的类负责创建对弈棋盘对象用户可以用鼠标拖动棋盘上棋子进行对弈
当松开鼠标时将棋子固定到棋点该棋盘使得用户不能将棋子拖放到非棋点上棋盘的Rule对象负责判断走棋是否遵守了中国象棋的规则例如马走日象走田小卒一去不回头等等如果用户的走法不符合规则棋子将被放回原处重新走着棋盘的
MakeChessManual对象负责记录棋谱当用户选择保存棋谱菜单时可以将该棋谱保存成文件另外该棋盘还能进行悔棋悔棋不被记录到棋谱
ChessPoint.java
该文件生成的类负责创建棋盘的棋点对象棋点对象可以判断该棋点上是否有棋子可以指定当前棋点上的棋子获取当前棋点上的棋子移掉当前棋点上的棋子
ChessPiece.java
该文件生成的类负责创建棋子对象并绘制棋子的外观棋子对象可以获取本身的颜
大小名字也可以设置和获取本身的类别红棋或黑棋
MakeChessManual.java
该文件生成的类负责创建记录棋谱的对象该对象可以将棋谱记录到一个链表中并在一个文本区中显示棋谱当对弈者悔棋时该对象将修改棋谱并更新文本区中的信息Rule.java
该文件生成的类负责为创建走棋法则对象该对象负责判断用户的走着是否遵守了中国象棋规则
Demon.java
该文件生成的类负责创建棋谱演示对象该对象可以演示保存过的棋谱对象MakeStep.java
该类创建的对象负责记录一步走棋
4.运行效果
将8个java文件保存到一个文件夹中比如C\chess将8个Java文件分别编译生成相应的字节码
ChessPiece.java
该文件生成的类负责创建棋子对象并绘制棋子的外观棋子对象可以获取本身的颜
大小名字也可以设置和获取本身的类别红棋或黑棋
MakeChessManual.java
该文件生成的类负责创建记录棋谱的对象该对象可以将棋谱记录到一个链表中并在一个文本区中显示棋谱当对弈者悔棋时该对象将修改棋谱并更新文本区中的信息Rule.java
该文件生成的类负责为创建走棋法则对象该对象负责判断用户的走着是否遵守了中国象棋规则
Demon.java
该文件生成的类负责创建棋谱演示对象该对象可以演示保存过的棋谱对象MakeStep.java
该类创建的对象负责记录一步走棋
4.运行效果
将8个java文件保存到一个文件夹中比如C\chess将8个Java文件分别编译生成相应的字节码
(class)文件然后用java解释器运行主类
C\chess\javaChess
效果如图
对弈和保存棋谱
演示棋谱
《中国象棋下法之如何打谱》
C\chess\javaChess
效果如图
对弈和保存棋谱
演示棋谱
《中国象棋下法之如何打谱》
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论