⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 与QQ游戏中的“连连看”的游戏规则基本一样
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
             top10.addActionListener(this);
        	 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         }

		public static void main(String arg[]){
			 JFrame.setDefaultLookAndFeelDecorated(true);
        	 JDialog.setDefaultLookAndFeelDecorated(true);
        	 MainFrame main = new MainFrame();
        	 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
             Dimension mainSize = main.getSize();
        	 main.setLocation((screenSize.width - mainSize.width) / 2,
                     (screenSize.height - mainSize.height) / 2);
        	 main.setVisible(true);
         }
		public void actionPerformed(ActionEvent e) {
			chushihuablack();
			if(e.getSource()==help){
				HelpDialog helpdialog = new HelpDialog(this,"帮助");
				Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension mainSize = helpdialog.getSize();
           	    helpdialog.setLocation((screenSize.width - mainSize.width) / 2,
                        (screenSize.height - mainSize.height) / 2);
           	    helpdialog.setResizable(false);
				helpdialog.setVisible(true);
			}
			else if(e.getSource()==setup){
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension mainSize = setupdialog.getSize();
           	    setupdialog.setLocation((screenSize.width - mainSize.width) / 2,
                        (screenSize.height - mainSize.height) / 2);
           	    setupdialog.setResizable(false);
                setupdialog.setVisible(true);
			}else if(e.getSource()==about){
				AboutDialog aboutdialog = new AboutDialog(this,"关于");
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension mainSize = aboutdialog.getSize();
           	    aboutdialog.setLocation((screenSize.width - mainSize.width) / 2,
                        (screenSize.height - mainSize.height) / 2);
           	    aboutdialog.setResizable(false);
                aboutdialog.setVisible(true);
			}else if(e.getSource()==top10){
				Top10 top10dialog = new Top10(this,"top10");
            	Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension mainSize = top10dialog.getSize();
           	    top10dialog.setLocation((screenSize.width - mainSize.width) / 2,
                        (screenSize.height - mainSize.height) / 2);
           	    top10dialog.setResizable(false);
           	    top10dialog.setVisible(true);
			}else{
				sound.start();
			if(kongzhi==0){
			       buttonxinxi1(e.getSource());
			       kongzhi=1;return;
				}
			if(kongzhi==1){
				buttonxinxi2(e.getSource());
				if(Compare1(upiconbuttonx,upiconbuttony,iconbuttonx,iconbuttony)){
					xianshi.setText("两次选择的点相同,取消选择!!");
					iconbutton[map.buttonblack[n1]].setBorder(BorderFactory.createRaisedBevelBorder());
					upiconbuttonx=-1;upiconbuttony=-1;
					iconbuttonx=-1;iconbuttony=-1;kongzhi=0;return;
				}
				else{
					if(Compare2(uptupianzhi,tupianzhi)){
						iconbutton[map.buttonblack[n1]].setVisible(false);
						iconbutton[map.buttonblack[n2]].setVisible(false);
						sound.earse();
						map.iconblack[n1]=-1;
						map.iconblack[n2]=-1;
						upiconbuttonx=0;
						upiconbuttony=0;
						iconbuttonx=0;
						iconbuttony=0;
						refreshiconnum-=2;
						chushihuablack();
						score=score+24;
						scorelb.setText("分数:"+score);
						kongzhi=0;
						if(EndGame()){
							xianshi.setText("点击 GO TO TOP10 查看你的排名!!!");
							isEmp=true;
							top10.setEnabled(true);
						}
						return;
					}else {
						xianshi.setText("这次选择的点与上个点无解!改变选择为当前点!!");
						score=score-1;
						scorelb.setText("分数:"+score);
						iconbutton[map.buttonblack[n1]].setBorder(BorderFactory.createRaisedBevelBorder());
						if(n1!=n2){
						iconbutton[map.buttonblack[n2]].setBorder(BorderFactory.createLineBorder(Color.RED,2));
						n1=n2;upiconbuttonx=iconbuttonx;upiconbuttony=iconbuttony;uptupianzhi=tupianzhi;
						}kongzhi=1;
					}
				}
			}
			}
	     }
		public static void chushihuablack(){
			for(int j=0;j<clomu;j++){
				for(int i=0;i<row;i++){
                   black[i][j]=0;
				}
			}
			int n=0;
			for(int j=0;j<clomu;j++){
				for(int i=0;i<row;i++){
					if(iconbutton[n].isVisible())
						black[i][j]=1;
					n++;
				}
			}
		}
		public void buttonxinxi1(Object object){
			int i;
			   for(i=0;i<map.iconnum;i++)
			   {
				   if(object==iconbutton[map.buttonblack[i]]){
					   n1=i;
					   upiconbuttony=map.buttonblack[i]/17+1;
					   upiconbuttonx=map.buttonblack[i]-(upiconbuttony-1)*17+1;
					   uptupianzhi=map.iconblack[i]+1;
					   iconbutton[map.buttonblack[i]].setBorder(BorderFactory.createLineBorder(Color.RED,2));
					   xianshi.setText("当前点的坐标:"+upiconbuttonx+","+upiconbuttony+"值为:"+uptupianzhi+"位移:"+(map.buttonblack[n1]+1));
					   }
				   }
			   }
		public void buttonxinxi2(Object object){
			int i;
			   for(i=0;i<map.iconnum;i++)
			   {
				   if(object==iconbutton[map.buttonblack[i]]){
					   n2=i;
					   iconbuttony=map.buttonblack[i]/17+1;
					   iconbuttonx=map.buttonblack[i]-(iconbuttony-1)*17+1;
					   tupianzhi=map.iconblack[i]+1;
					   iconbutton[map.buttonblack[i]].setBorder(BorderFactory.createLineBorder(Color.RED,2));
					   xianshi.setText("当前点的坐标:"+iconbuttonx+","+iconbuttony+"值为:"+tupianzhi+"位移:"+(map.buttonblack[n2]+1));
					   }
			   }
		}
		public boolean Compare1(int upiconbuttonx,int upiconbuttony,int iconbuttonx,int iconbuttony){
			if(upiconbuttonx==iconbuttonx&&iconbuttony==upiconbuttony)
				return(true);
			else return(false);
		}
		public boolean Compare2(int uptupianzhi,int tupianzhi){
			int direction=0;
			if(uptupianzhi==tupianzhi){
				direction=map.diretion(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony);
				if(map.det(direction,upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,false)){
				xianshi.setText("两点有解,消除成功!");
				return(true);
				}else return(false);
			}else
			return(false);
		}
		public static boolean EndGame(){
			int isDead=0;
			for(int i=0;i<row*clomu;i++){
				if(iconbutton[i].isVisible()){
				    isDead=1;
				    break;
				}
			}
			if(isDead==1)return(false);
			else return(true);
		}
		public  void yanshi(int shijian){
	     	  try {
	   				Robot ne=new Robot();
	   				ne.delay(shijian);
	   			  } catch (AWTException en) {
	   				en.printStackTrace();
	   			  }
	       }
		    Image getImage(String filename) {
		    URLClassLoader urlLoader = (URLClassLoader)this.getClass().
		        getClassLoader();
		    URL url = null;
		    Image image = null;
		    url = urlLoader.findResource(filename);
		    image = Toolkit.getDefaultToolkit().getImage(url);
		    MediaTracker mediatracker = new MediaTracker(this);
		    try {
		      mediatracker.addImage(image, 0);
		      mediatracker.waitForID(0);
		    }
		    catch (InterruptedException _ex) {
		      image = null;
		    }
		    if (mediatracker.isErrorID(0)) {
		      image = null;
		    }

		    return image;
		  }
}
class Time extends Thread{
	public Time(){
		MainFrame.map.time=0;
	}
	public void run() {
		  while((!MainFrame.isEmp)){
			  MainFrame.timelb.setText("时间:"+MainFrame.map.time);
			  yanshi(1000);
			  MainFrame.map.time++;
			  MainFrame.timelb.setText("时间:"+MainFrame.map.time);
		  }
		  if(MainFrame.isEmp){
			  if(MainFrame.map.time>=MainFrame.map.iconnum*4){
				   MainFrame.score=MainFrame.score-2*(MainFrame.map.time-(MainFrame.map.iconnum*4));
				}else {
					MainFrame.score=MainFrame.score+2*((MainFrame.map.iconnum*4)-MainFrame.map.time);
				}
				MainFrame.scorelb.setText("分数:"+MainFrame.score);
		  }
		}
		public void start(Time thread){
			MainFrame.map.time=0;
			thread.start();
		}
		public  void yanshi(int shijian){
     	  try {
   				Robot ne=new Robot();
   				ne.delay(shijian);
   			  } catch (AWTException en) {
   				en.printStackTrace();
   			  }
       }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -