Java连连看游戏程序源码

  • m7_754374
    了解作者
  • 121KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-11 00:05
    上传日期
Java语言编写,有详细注释,用到了gui Java,Java,Java,Java,Java,Java,Java,Java,Java,Java,Java,Java,Java,Java,Java
连连看游戏.rar
  • LLK
  • src
  • llk
  • LianLianKan.java
    4.2KB
  • LLKFrame.java
    1.1KB
  • LLKStart.java
    363B
  • LLKComponent.java
    5KB
  • MapUtil.java
    620B
  • testgui
  • MyComponet.java
    982B
  • MyConvas.java
    1.2KB
  • OuterClass.java
    1.2KB
  • TestFrame.java
    1.2KB
  • TestInnerClass.java
    198B
  • MyMouseListenr.java
    1.9KB
  • .settings
  • org.eclipse.jdt.ui.prefs
    99B
  • org.eclipse.jdt.core.prefs
    629B
  • image
  • 9.gif
    1.5KB
  • 4.gif
    1.5KB
  • sr.gif
    1.4KB
  • 11.gif
    1KB
  • 3.gif
    1.3KB
  • 6.gif
    1.5KB
  • 2.gif
    1.5KB
  • 7.gif
    1.4KB
  • 5.gif
    1.5KB
  • 12.gif
    1.3KB
  • 10.gif
    1.4KB
  • 1.gif
    1.4KB
  • Thumbs.db
    52KB
  • 8.gif
    1.4KB
  • bin
  • llk
  • LLKStart$1.class
    630B
  • LLKComponent$1.class
    791B
  • LLKFrame$1$1.class
    892B
  • LLKFrame.class
    1.7KB
  • LLKComponent$2.class
    848B
  • LianLianKan.class
    3.5KB
  • LLKStart.class
    520B
  • MapUtil.class
    774B
  • LLKFrame$2.class
    715B
  • LLKComponent.class
    5.7KB
  • LLKFrame$1.class
    1.1KB
  • testgui
  • MyComponet.class
    1.5KB
  • TestFrame.class
    1.8KB
  • TestInnerClass.class
    660B
  • OuterClass$1.class
    968B
  • MyMouseListenr.class
    1.7KB
  • OuterClass.class
    1.1KB
  • OuterClass$2.class
    634B
  • MyConvas.class
    1.7KB
  • OuterClass$1MethodInnerClass.class
    502B
  • OuterClass$InnerClass.class
    929B
  • 9.gif
    1.5KB
  • 4.gif
    1.5KB
  • sr.gif
    1.4KB
  • 11.gif
    1KB
  • 3.gif
    1.3KB
  • 6.gif
    1.5KB
  • 2.gif
    1.5KB
  • 7.gif
    1.4KB
  • 5.gif
    1.5KB
  • 12.gif
    1.3KB
  • 10.gif
    1.4KB
  • 1.gif
    1.4KB
  • Thumbs.db
    52KB
  • 8.gif
    1.4KB
  • .project
    379B
  • .classpath
    276B
内容介绍
package llk; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.io.File; import java.io.IOException; import java.util.ArrayList; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JTextArea; import javax.swing.border.Border; public class LLKComponent extends JComponent { private Image image[] = new Image[12]; private Point p; private Point p2; private int[][] map; private LianLianKan llk; private boolean islink; private boolean isnewclick; private JDialog jd; private JTextArea jt; private JButton jok; private int time=600; private int score; private int sub; /** * 构造 */ public LLKComponent() { sub=5; try { map = MapUtil.initMap(10, 10); for (int i = 0; i < 12; i++) { image[i] = ImageIO.read(new File("image/" + (i + 1) + ".gif")); } } catch (IOException e) { e.printStackTrace(); } llk = new LianLianKan(map); jd = new JDialog(); // jd.setModal(true); jt=new JTextArea();//文本,显示得分 jt.setFont(new Font("SansSerif", Font.BOLD, 20)); jt.setBounds(100, 60, 150, 50); jt.setBackground(Color.ORANGE); jok = new JButton();//按钮 jok.setBounds(100, 100, 130, 50); jok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { LLKComponent.this.replay(); jd.setVisible(false); } }); jd.add(jok); } /** * 响应 * * @param e */ public void domouseClicked(MouseEvent e) { isnewclick=true; p = p2; p2 = e.getPoint(); if ( !p2.equals(p)) { if(p!=null && p2 !=null){ Point temp = new Point(p.y / 60, p.x / 60); Point temp2 = new Point(p2.y / 60, p2.x / 60); if (temp.equals(temp2)) return; islink = llk.link(temp, temp2); } //LLKComponent.this.repaint(0,0,607,605); LLKComponent.this.repaint(); } } /** * 重来 */ public void replay() { this.setEnabled(true); map = MapUtil.initMap(10, 10); llk.setMap(map); llk.setSuccess(); llk.setPlist(null); islink = false; repaint(); this.setVisible(true); time=600; } /** * 给图 */ public void paintComponent(Graphics g) { /* * 黑色背景 */ g.setColor(Color.BLACK); g.fillRect(0, 0, 607, 605); if (image == null) return; for (int i = 0; i < 10; i++) {//画图片 for (int j = 0; j < 10; j++) { if (map[i][j] != 0) g.drawImage(image[map[i][j] - 1], i * 60, j * 60, this); } } for (int i = 0; i <= 10; i++) {//画格子 g.drawLine(i * 60, 0, i * 60, 600); g.drawLine(0, i * 60, 600, i * 60); } /* * 红色线或者框 */ g.setColor(Color.RED); if(isnewclick){ if (islink)//画矩形 g.drawRect((p.x / 60) * 60, (p.y / 60) * 60, 60, 60); if (p2 != null)//画矩形 g.drawRect((p2.x / 60) * 60, (p2.y / 60) * 60, 60, 60); if (islink) {//连通画线 time+=10;//时间+10 ArrayList<Point> plist = llk.getPlist(); Point temp = null; for (Point pp : plist) { if (temp == null){ temp = pp; } else{ g.drawLine(temp.y * 60 + 30, temp.x * 60 + 30, pp.y * 60 + 30, pp.x * 60 + 30); } temp = pp; } if (llk.isSuccess()) { this.setVisible(false); score+=1000-llk.getTowin()*10-200+time*10; jt.setText("您赢了!\n 得分:"+score); jok.setText("继续下一关!"); jd.add(jt); jd.setTitle("您赢了"); jd.setBounds(300, 300, 300, 200); jd.setAlwaysOnTop(true); jd.setVisible(true); sub+=5; } /* * 半秒钟后,自动删除画的连接线 */ new Thread(){ @Override public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } islink=false; isnewclick=false; LLKComponent.this.repaint(); } }.start(); } g.setColor(Color.BLUE); g.fillRect(0, 605, 607, 30); g.setColor(Color.CYAN); g.drawString("单击鼠标开始!", 300, 630); } } public void timeZone(Graphics g){ while(time>0&&!llk.isSuccess()){ g.setColor(Color.BLACK); g.fillRect(0, 659, 607, 30); time-=sub; if(time>=250) g.setColor(Color.GREEN); else g.setColor(Color.RED); g.fillRect(0, 659, time, 30); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } if (!llk.isSuccess()) { this.setEnabled(false); jd.setBounds(300, 300, 300, 200); this.setVisible(false); score+=1000-llk.getTowin()*10-200; jt.setText("您输了!\n 得分:"+score); jd.add(jt); jok.setText("再来一盘"); jd.setTitle("输了!"); jd.setAlwaysOnTop(true); jd.setVisible(true); score=0; sub=5; } } }
评论
    相关推荐
    • JAVA“连连看”游戏程序设计
      JAVA“连连看”游戏程序设计 《Java与对象分布技术》课程设计报告
    • java贪吃蛇游戏程序设计
      该程序为贪吃蛇游戏程序,是针对贪吃蛇小游戏的JAVA程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,并且是用红蓝间隔画蛇身,碰到壁或自身则游戏结束...
    • java猜拳游戏程序
      int count = 0; Scanner input = new Scanner(System.in); User person = new User(); Computer computer =new Computer(); public void chuShiHua(){
    • java拼图游戏程序
      java拼图游戏的实例,源码,不错
    • java程序游戏
      FlyingBrid小游戏FlyingBrid小游戏FlyingBrid小游戏FlyingBrid小游戏
    • 扫雷游戏程序(java)
      游戏Java编写的,完全可以当作你的业余爱好,而且玩此游戏可以开拓你的思维,还等什么,赶紧加入
    • java编写网络五子棋游戏程序
      Java开发典型模块大全》一书中的源代码。 经典代码! 非常值得借鉴和学习!
    • Java编写的五子棋游戏程序
      Java编写的五子棋游戏,主要是适合学生学习借鉴的,呵呵
    • 豪斯游戏 java程序
      该程序是由java编写的游戏程序,采用良好的界面
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档