当前位置:首页>> >>


连连看.rar

收藏

资源目录
    文档预览:
    编号:20181030003752539    类型:共享资源    大小:5.14MB    格式:RAR    上传时间:2018-10-30
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    35
    金币
    关 键 词:
    连连
    资源描述:
    JISHOU UNIVERSITYJava 课 程 设 计题 目: 连连看作 者: 吴丙桥学 号: 20154206268所属学院: 软件学院专业年级: 软件工程 2015 级 4 班指导教师: 宋旭东完成时间: 2017 年 6 月 2 日—2017 年 6 月 12 日软件学院制项目描述项目名称:“连连看”休闲游戏项目描述:图片连连看游戏是利用 java 图形用户界面设计而设计的图片连连看游戏界面。它的游戏规则就是选择一对内容相同的图案进行连线,但此连线不能穿跨其他图案。连线的转折点不能多于两个,如果符合规定则消除此对图案。如果游戏找不到可连接消除的图案,可以通过鼠标点击重列按钮让它重新排列图案,也可以通过鼠标重新开始新的游戏,时间结束后游戏自动结束,还可以通过鼠标退出游戏。项目实现的目标:1.利用 awt 实现良好的游戏界面,游戏界面尽可能美观。2.游戏开始时,能产生随机数字和随机位置以及限制的时间。3.在按动鼠标和键盘时,游戏能玩起来,即能响应鼠标事件。4.能消去满足条件的含有相同数字的图片。5.能重列图片顺序。6.能选择退出游戏和重新再来一局。实现项目所需要的思想:在检验两个图片能否消掉的时候,要让两个图片同时满足两个条件才行,就是两者配对并且连线成功。分 3 种情况:这三种情况都需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了。(1)、相邻(2)、若不相邻的先在第一个按钮的同行找一个空按钮。1.找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2.没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3. 没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了可以消了.(3)、若(2)失败后,再在第一个按钮的同列找一个空按钮。1.找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮 2.没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3. 没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。若以上三步都失败,说明这两个按钮不可以消去。所有能够消除的情况:(1)(2)(3)(4)(5)游戏中类的设计:图片连连看游戏程序中只有一个类,类名为 LianLianKan,该类实现了接口 ActionListener;该类总共有十三个方法,他们的功能分别是:init() 初始化;createImgBtn()传进两个 String 类型的参数,返回带有数字和图片的按钮;randomBuild(),产生十五对随机的数字;fraction()计算得分;reload()将游戏按钮重列;estimateEven()传进两个 int 型和一个 JButton 型的三个参数(分别是击中的按钮位置坐标和按钮),选中按钮信息的存储与操作;xiao() 消去符合游戏规则的相同的两个按钮;linePassOne()在第一按钮同行有空按钮的条件下判断第二转折点出现的情况;rowPassOne()在第一按钮同列有空按钮的条件下判断第二转折点出现的情况;remove()将相同的两个按钮消去;actionPerformed()实现按钮事件的监听;timerDemo()时间提示;main()主方法;关于我的游戏:1.程序采用图形用户界面,简单大方,且易于操作; 2.连连看图片采用大家熟悉的图片,能激起玩家的游戏兴趣;3.游戏功能较为齐全,可实现退出、重列和下一局的功能,重列功能可对游戏中剩余的图片进行重新排列,使游戏继续进行,下一局功能可以使游戏重新开始4.游戏具有倒计时功能,能够控制游戏时限,使游戏具有一定难度,倒计时结束时显示“gameover”。5.游戏可以统计玩家的游戏得分游戏运行界面:编写程序中遇到的困难:1.在编辑程序时,定义了一个 grid 数组,用来存放游戏按钮的位置,刚开始定义的是 6 行 5 列,结果玩游戏时,周边的按钮不能被消去,后将数组改为 8 行 7 列时才可以,这样按钮周边的一圈就是空按钮,周边的按钮就可以被消去。2.在编辑 randomBuild()方法产生随机的两两相同的数字时,程序中会出现并非两两相同的图片,达不到预期的效果,后改为在 randomBuild()方法里添加如下这样的程序:while(grid[cols][rows]!=0){cols=(int)(Math.random()*6+1);rows=(int)(Math.random()*5+1);}3.加载计时器时出现错误,即如果只在初始方法 init()里调用 timerDemo()方法时,在点击重列按钮或者下一局按钮时,时间提示里的时间是两次时间相掺杂的;改为只在 main()方法里调用 timerDemo()方法,在点击重列按钮时没有问题,但在点击下一局按钮时,时间还是相掺杂着出现;最后改为在main()方法里调用 timerDemo()方法的同时在 actionPerformed()方法里将if(e.getSource()==newlyButton){intgrid[][]=newint[8][7];this.grid=grid;randomBuild();mainFrame.setVisible(false);pressInformation=false;Init();}改为:if(e.getSource()==newlyButton){flag=true;intgrid[][]=newint[8][7];this.grid=grid;randomBuild();mainFrame.setVisible(false);pressInformation=false;init();timerDemo();}(程序运行实践)(按下重列按钮将图片进行随机排列)(游戏结束之后会显示玩家得分)(倒计时归零后显示游戏结束)项目代码:package test;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Timer;import java.util.TimerTask;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class lian implements ActionListener {// 主面板JFrame mainFrame;// 面板容器Container thisContainer;// 子面板JPanel centerPanel, southPanel, northPanel, westPanel, eastPanel;// 游戏按钮数组JButton diamondsButton[][] = new JButton[6][5];// 开始,退出,重列,重新开始按钮JButton exitButton, resetButton, newlyButton;// JButton startButton;// 分数标签JLabel fractionLable = new JLabel(“0“);// 时间标签JLabel time = new JLabel(““);// 分别记录两次被选中的按钮JButton fristButton, secondButton;// 储存游戏按钮位置int grid[][] = new int[8][7];// 判断是否有按钮被击中static boolean pressInformation = false;// 被选中的两个游戏按钮的位置坐标(x0,y0),(x,y)int x0 = 0, y0 = 0, x = 0, y = 0;// 两个被选中按钮上相应的数字
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:连连看.rar
    链接地址:http://www.gold-doc.com/p-255421.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    [email protected] 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开