连连看实训文档简易版.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图形界面的程序设计有一个比较全面的掌握。 设计一个连连看游戏,要求能够通过界面设计、游戏算法等实现连连看的游戏功能。 设计要求 要求界面美观、使用方便;算法周密,能够实现消除、重排、提示等基本游戏功能;游戏应该具有一定的易用性、正确性、容错性。 功能设计 实现如下所示界面 说明:游戏区界面是点击开始按钮后生成的。 生成游戏区 点击开始按钮,自动生成游戏区,要求按钮的图案是随机的,且每个图案必须是偶数个。 联通消除 点击相连的两个按钮可以把两个按钮消除掉。相连有三种情况:直线相连,直角相连,双折线相连。 暂停继续 游戏过程中可以暂停、继续游戏。 游戏结束 游戏结束有两种情况:消掉了所有按钮,超时。应根据具体情况给出不同的提示。此外,在游戏过程中,再次单击开始可以重玩。 具体设计 4.1 功能实现思路(仅供参考): 游戏的核心是如何消掉相同图标的按钮,首先要想办法判断两个按钮的图标是否相同,这里提示大家一个方法:按钮有个setActionCommand方法和getActionCommand,把图标索引设置为一个按钮的ActionCommand,然后通过对比两个按钮的ActionCommand就可以知道是否具有相同的图标。 消除按钮就要判断两个按钮是否连通,连通有三种情况,对应三种算法,下面详细说明。算法判断两个点是否连通,那如何跟两个按钮建立联系呢?按钮的位置就可以视作一个点(java中用Point类表示一个点)。这样用一个点代表按钮位置,用ActionCommand代表按钮上的图标。就很容易操作了。 界面布局和实现参考上课讲义 生成游戏区:按钮放在一个面板上,单击开始按钮后,先清空面板内容,然后重新生成按钮。按钮图标随机生成,且每个图标是偶数个。可先生成一半的图标,然后想法复制一份,这样构成全部图标,且都是偶数个。 联通消除 三种算法:直线相连,直角相连,双折线相连。后面代码给出一部分。 直线相连:只要两点之间横坐标或纵坐标相同,即表示两点在同行或同列;然后判断两点之间有没有障碍,无则联通。 直角相连:两个点的坐标可以生成一个新的点,如果两点都可以与该新点联通,则说明联通。注意:新点有两个,如图所示一个,另外喇叭图标处也可以生成一个,但是因为喇叭图标处不是空点,因此不用该点。但在实际中,新点的两种可能都要考虑到,那个能用用那个。 双折线相连:在单击的第一点处,向四个方向搜索有无空点,如果有则生成一个新点,如果该新点与另一个按钮联通(直角联通),则说明联通。如果该新点不能与按钮连通,则继续向该新点的方向前进一个位置,再次判断该位置是否为空点,是否可以和另一个按钮连通,以此类推。 暂停继续 暂停则计时停止,隐藏游戏区 4.2 主类LinkGame 4.2.1 成员变量 变量类型 变量名 说明 final static int ROW 游戏区七行八列共56个按钮 final static int COL JPanel functionPanel 功能区面板 JPanel gamePanel 游戏区面板 JButton[][] dots 按钮数组 JLabel timestr 内容是“剩余时间” JLabel timecount 计时 Timer timer JButton start 开始按钮 JButton pause 暂停 JButton conti 继续 JButton hint 重排 static int count 记录鼠标单击次数 static int time 记录游戏剩余时间 Point p1, p2 保存两个被单击按钮的坐标 LinkedListPoint list 按钮坐标集合 ArrayListString imageIndex 存放图像索引 LinkedListString linklist 重排时存放按钮 4.2.2 方法 方法名 方法功能 public void addmyMenu() 添加菜单 public void addFunctionPanel() 添加功能区 public void addGamePanel() 添加游戏区 private class ButtonEvents implements ActionListener 游戏区按钮被单击 public boolean lineCheck(Point p1, Point p2) 是否直线联通 public boolean secendLine(Point p1, Point p2) 是否直角联通 public boolean triLine(Point p1, Point

文档评论(0)

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

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

1亿VIP精品文档

相关文档