基于java的连连看游戏.docxVIP

  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的《连连看》游戏 引言 《连连看》游戏在网上种类非常多,比如《水果连连看》 ,《宠物连连看》等等,虽然版 本各种各样,但是其基本玩法, 或者说基本算法是相同的,就是显示一些图标,让用户依次 去点击两个图标,如果这两个图标相同, 并且这两个图标通过直线可以相连, 或者通过直角 相连,或者通过双折线相连就可以消掉,消掉所有图标即为胜利。如图 i所示: 图i正在进行中的连连看游戏 通过该游戏的制作,我们可以对 Java的基础语法、Java图形界面以及简单的算法设计 有一个比较全面的了解。 设计要求 为了避免叙述的繁琐,我们只实现连连看游戏的基本功能,如下: 制作如图1所示的游戏界面,尽量做到美观大方,使用方便 当两个图标相同,且通过直线相连、直角相连、双折线相连时,能够消掉图标 能够让游戏随时暂停,然后继续 当游戏进行到一定程度,无法消除剩余图标时,要能够提供重排功能对图标进行重 排,从而让游戏继续进行 三实现思路 我们先讲一下程序中的几个难点, 主要是说清楚具体的实现思路, 具体的代码会在文后给出, 大家可以参考。 1、界面设计 需要实现如图2所示的界面: 图2连连游戏界面 整个界面分为三个区域:菜单区、功能区、游戏区。首先在窗体上放置三个面板 JPanel , 分别存放三个区域,如图 3所示: 系统菜单区(North) 用户浙戏区 (Center) 用户交返区 图3界面的设计 系统菜单区放置菜单即可,用户游戏区放置一个 8*9的按钮数组来构成游戏界面,用户 交互区放置开始,暂停等功能按钮以及提示信息。 2、生成游戏区 运行程序后,游戏区并不显示按钮数组,当点击开始按钮后,再自动生成。在生成按钮时 要求按钮上的图案是随机的,且每个图案必须是偶数,否则会出现无法消除的按钮。如何实 现呢?我们可以这样考虑:假设有 12个图片,把图片名字按照数字序号从 0到11命名; 假设游戏区共72个按钮,那么产生36个12以内的随机数字(每个随机数字代表一个图片): 放入一个ArrayList中,最后使用ArrayList的addAll方法对已经产生的 36个随机数字复 制一份,这样就获得了 72个随机数字,并且是成对的。因为一个数字对应一个图片,所以 72个按钮需要的图片就生成了。代码如下: Ran dom ran dom =new Random(); Ran dom ran dom = new Random(); int image num = ROW * COL; for (int i=0; ivimagenum/2; i++){ );//生成随机数索引放入集合 );//生成随机数索引放入集合 imageI ndex .addAII( image In dex );//连接集合使每个索引都是成偶数的 3、联通消除 相连有三种情况:直线相连,直角点击相连且图片相同的两个按钮可以把两个按钮消除掉。 相连有三种情况:直线相连,直角 相连,双折线相连。 要消掉相同图标的按钮, 首先要想办法判断两个按钮的图标是否相同, 这里提示大家一个方 法:按钮有个setActionCommand 方法和getActionCommand ,把图标名字设置为一个 按钮的ActionCommand ,然后通过对比两个按钮的 ActionCommand 就可以知道是否具 有相同的图标。 消除按钮就要判断两个按钮是否连通,连通有三种情况, 对应三种算法,下面详细说明。算 法判断两个点是否连通,那如何跟两个按钮建立联系呢?按钮的位置就可以视作一个点 (java中用Point类表示一个点)。这样用一个点代表按钮位置,用 ActionCommand 代 表按钮上的图标。就很容易操作了。下面我们先说清楚实现原理,具体代码一会在给出。 (1 )直线相连:只要两点之间横坐标或纵坐标相同,即表示两点在同行或同列;然后判断 两点之间有没有障碍,无则联通。 (2 )直角相连:两个点的坐标可以生成一个新的点,如果两点都可以与该新点联通,则说 明联通。注意:新点有两个,如图所示一个,另外喇叭图标处也可以生成一个,但是因为喇 叭图标处不是空点, 因此不用该点。但在实际中,新点的两种可能都要考虑到,那个能用用 那个。 (3)双折线相连:在单击的第一点处,向四个方向搜索有无空点, 如果有则生成一个新点, 如果该新点与另一个按钮联通(直角联通) ,则说明联通。如果该新点不能与按钮连通,则 继续向该新点的方向前进一个位置, 再次判断该位置是否为空点,是否可以和另一个按钮连 通,以此类推。 4、重排 当游戏进行到一定程度,剩余的按钮无法消掉,这时就需要对按钮位置进行重新排列,从 而让游戏继续进行。解决这一问题的思路如下:首先

文档评论(0)

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

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

1亿VIP精品文档

相关文档