网站大量收购独家精品文档,联系QQ:2885784924

《跳棋的设计.docVIP

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

跳棋 “我的跳棋”设计说明书,作者:俞尚 来自:/user17/yushang0824/bloghtml. 一、?概述: ????? 跳棋在我国是一项老少皆宜、流传广泛的益智型棋类游戏。由于其规则简单,一玩就懂,一辈子都不会忘,所以几乎每个人从小到大都下过跳棋。如果您不愿陷入激烈的思考和竞争,那么无疑本游戏可以使您回到一种更平和、产生美好回忆的心情之中。 ????? 在此我把近十天的成果做一个简要的介绍,尽量把问题说得清楚细致。希望与对跳棋编程有同样兴趣的伙伴们好好讨论一下,也希望下一版本的跳棋做得更好。 ????? 这个跳棋游戏主要有下几个特点:界面漂亮,操作简单,功能简洁,老少兼宜。我爸爸都很喜欢下。整个跳棋的源码你可以下载。 二、?跳棋整体设计 UML类图: ? 先给跳棋整个代码做一个整体介绍,说明每个包,每个类具体作用: 1.?org.yushang.jumpchess.app AppJumpChess.java实现的漂亮的窗体界面,标题栏和各种按钮,设置玩家个数及类型(人,或是计算机)。 2.?org.yushang.jumpchess.audio WavePlayer.java主要用于播放游戏中各种声音效果,比较简单。 3.?org.yushang.jumpchess.image ImageLoader.java主要用于从资源文件中导入各种图片背景,比较简单。 4.?org.yushang.jumpchess.Interface ?Animation.java是用于播放动画的超类? ?AnimationGO.java是用于播放棋子走动的动画? ?AnimationSelect.java是用于播放棋子被选中后,“抖动”动画效果? ?Drawer.java主要是静态地显示棋盘、棋子、下棋位置等图片? ?JumpChessControl.java是一个很复杂的类,控制玩家下棋顺序、棋子棋盘的显示、动画显示、以及响应玩家的下棋的鼠标事件。? 5.?org.yushang.jumpchess.pkg ?Chess.java棋子类,说明棋子的颜色以及索引号等信息。? ?ChessBoard.java棋盘类:? ????? 索引功能:为棋子和棋盘坐标建立索引关系,根据棋子的可快速检索出该棋子的坐标或根据坐标快速检索出该位置是否有棋子。由于这两项功能在下棋过程中使用频率很高,因此对性能要求也很高。 ????? 下棋规则:设定了下棋规则,可以是传统的规则,也可以隔空跳规则。这是一个麻烦的工作。涉及数据结构方面的知识,有图的生成和最短路径搜索两个难点。 ????? RealChessBoard和VirtualChessBoard是ChessBoard派生类: RealChessBoard中建立了棋子和棋盘坐标建立真正的索引关系。而VirtualChessBoard是建立在RealChessBoard基础之上的,VirtualChessBoard只是保存当已走动的棋子坐标变化情况,这样VirtualChessBoard的数据量很小,提高计算机下棋智能计算速度,这一优点在介绍计算机下棋策略详细讨论。RealChessBoard和VirtualChessBoard只是创建方式有点区别,使用上没有任何差别,这也是多态性的一个运用。 ?Player.java玩家类? 保存了玩家棋子颜色、昵称、敌对玩家,棋子摆放初始区域等信息。同时输出下棋路径,为播放动画作准备。 有两个Play和Man两个派生类,计算机玩家的下棋由org.yushang.jumpchess.strategy控制,而人玩家的下棋要由用户鼠标事件来驱动。这两个类实现这两个不同的功能。 6.?org.yushang.jumpchess.pub ?BoardArea.java这把棋盘各玩家所处的位置编号成6个区域。该类可得到自己区域包含哪些坐标(getAreaPositions)。也可得到和自己相对区域(getOppsiteArea)。? ?Color.java是棋子颜色类? ?Director.java棋盘任何一坐标位置(非棋盘边界),在放六个方向上都有相邻的坐标位置,? ?Map.java、Node.java、Nodes.java三个文件是和数据结构“图”相关的三个类。? ?Position.java棋盘坐标类,有三个功能:设定了棋盘边界、给定一方向可以得到该方向上相邻的坐标、计算与另一坐标的距离。? 7.?org.yushang.jumpchess.strategy 计算机下棋策略主要有以下几个方面: ?计算出己方所有可能走法 ?选出一个跳得最远(尽快让自己获胜)的棋子和走法。 ?选择一个最可能阻碍对方前行的棋子和走法。 ?尽可能选择可为

文档评论(0)

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

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

1亿VIP精品文档

相关文档