基于JAVA技术象棋游戏分析与设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JAVA技术象棋游戏分析与设计

基于JAVA技术象棋游戏分析与设计   【摘 要】Java语言具有平台无关性、易移植性等诸多特征,得到了广泛的应用。程序开发费用少,工作效率高,并拥有很好的用户界面和强大的开发工具。网上数据编程体现的非常充分,是其它语言无法做到的。   本论文着眼于Java技术的应用,开发中国象棋游戏程序,完成基于Java技术象棋游戏的分析与设计,充分在游戏中体现了java的优势。   【关键词】Java 象棋 游戏 类 接口   【中图分类号】TP311 【文献标识码】A 【文章编号】2095-3089(2017)06-0063-02   中国象棋被誉为中国的“国粹”,从诞生到现在已经成为国人最喜欢的棋类竞技游戏,对青少年的影响也是很广泛,双方在象棋的对弈过程中,体验着智慧对垒的快乐。   随着游戏与Java技术平台的合作,越来越多的游戏编程爱好者把Java作为了实现游戏程序的首选。如今Java技术在游戏产业中发展迅猛,并在网络的支持下,在游戏领域中开辟了自己的广阔天地。   游戏设计目的及意义   象棋历史悠久,棋类博弈游戏越来越受广大游戏爱好者的喜爱,它不仅能给对弈的双方带来快乐,而且还在竞技的过程中感受使用计策战术,战胜对手的自豪感。   功能需求   通过对中国象棋游戏的需求分析,该游戏应实现棋盘界面的显示功能,双方下棋使用鼠标挪动棋子并吃子的功能,每走一步棋对棋谱进行记录的功能,严格实现中国象棋走棋规则的功能,关闭退出游戏等功能。   象棋游戏设计的几个要点   对弈的程序,至少应具备如下几个部分:   ①在机器中表示棋盘的方法,能够提供一个最基本的操作界面,有了这个界面才能运行。   ②产生中国象棋走法的规则,以使对弈正确地进行,并可判断双方是否乱走。   ③实现吃子过程中的图形替换、重绘,使得双方能看出游戏当前的形势。   象棋游戏棋盘的设计   中国象棋的棋盘与其它博弈类的棋盘不同,对阵双方各执一方战场,中间有空白河界相隔,俗称“楚河汉界”。在己方各有一个交点互相连接的田字格,俗称“九宫格”,“将”和“士”只能在这个范围内走动,不能踏出。   中国象棋的棋盘如图1-1所示:   棋盘表示就是使用一种数据结构来描述棋盘及棋盘上的棋子,通常是使用一个二维数组。一个典型的中国象棋棋盘是使用9×10的二维数组表示。每一个元素代表棋盘上的一个交点。在Java中我们在ChessBoard这个类下来具体实现,定义一个ChessPoint point[ ][ ]二维数组,纵列从1到9,横列从A到J,这样就表示了象棋棋盘的9×10的方阵,为每个棋子提供了放置位置。   中国象棋游戏规则的实现描述   从中国象棋游戏的棋子和规则可以看出,由于将或帅、仕和士、象和相、卒和兵的走法相同,只是棋子的标示不同,再加上车、马、炮,所以规则的主要实现点有七点,以下对中国象棋游戏的部分棋子行棋规则实现加以描述。   首先我们对每个棋子行棋时的初始和中止位置设置为startI,startJ,endI,endJ。这样我们就可以用这四个值表示出棋子的初始及中止位置的坐标点。   接着,我们再定义两个整形变量xAxle和yAxle,他们分别表示初始与终止坐标值之间差值的绝对值。   将或帅:只能在王宫内移动。每一步只可以水平或垂直移动一点。   将或帅的行棋思路如图1-2所示:   分析描述:对于帅的活动范围,通过if(endI=4endJ=8)语句限定,如果满足则可以走棋,不满足则不能走棋,这就限定棋盘下方的帅不能走出九宫格。对于将的活动范围,通过if(endI=4endJ=3)语句限定,原理同上。   行棋规则则通过if((xAxle==1yAxle==0)||(xAxle==0yAxle==1))这条语句限定,就图1-2所示,帅只能移动到(x2,y1)、(x2,y3)、(x1,y2)、(x3,y2)四个点,他们的坐标差绝对值只有满足上面语句这两种情况才可以行棋。   象或相:河界的一侧。每一步只可以沿对角线方向移动两点,另外,在移动的过程中不能够穿越障碍。   象或相的行棋思路如图1-3所示:   分析描述:对于象的活动范围,通过if(endJ=6)语句限定,原理同上。   行棋规则比较特殊,它是沿对角线方向移动两?c,另外,在移动的过程中不能够穿越障碍。就图1-3所示,象要走到(x3,y3)这一点上的前提条件是(x2,y2)这个田字格的中心,也就是“象眼”的位置没有棋子,对于这一点的坐标,我们要定义两个变量centerI=(startI+endI)/2和centerJ=(startJ+endJ)/2,这样当我们行棋时,就可以用if(point[centerI][centerJ].isPiece(

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档