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

📄 linkgame.java

📁 小游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.ScrollPaneConstants;
import javax.swing.ButtonGroup;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;
import javax.swing.Icon;
import javax.swing.JScrollPane;
import javax.swing.ImageIcon;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.lang.Math;
import sun.audio.*;
import java.io.*;
import java.awt.*;
import java.net.*;
import javax.swing.JProgressBar;

class BackGroundPane extends JPanel {
 private ImageIcon imageIcon;
 
 public ImageIcon getImageIcon() {
  return imageIcon;
 }

 public void setImageIcon(ImageIcon imageIcon) {//设置图片
  this.imageIcon = imageIcon;
 }

 public BackGroundPane() {
  super();
  //this.setOpaque(false);
 }

 protected void paintChildren(Graphics g) {//重绘JPanel下的Components
  super.paintChildren(g);
  for(int i =0;i<this.getComponents().length;i++){
   this.getComponent(i).repaint();
  }
  g.dispose();
 }

 protected void paintComponent(Graphics g) {
  Graphics2D g2D = (Graphics2D)g;
  super.paintComponent(g2D);

if(imageIcon!=null){//绘制背景
   g2D.drawImage(imageIcon.getImage(), 0, 0,this.getWidth(),this.getHeight(),this);

}
  g2D.dispose();
 }
}
public class  LinkGame extends JFrame{
	private int fwidth,fheight;
	private JMenuItem startItem,pauseItem,exitItem;
	private JRadioButtonMenuItem DefaultItem,QItem,viewItem,onItem,offItem,
								 easyItem,normalItem,hardItem;

	private JButton[] jButton;
	private int[] a;
	private int[][] b;
	private int mk=0;
	private JButton startButton,pauseButton,exitButton,reSetButton;
	private BackGroundPane jFramePane,jpcenter;	
	ImageIcon[] image;
	MonitorButton mb;
	int level=37;
	public JProgressBar progress= new JProgressBar(1,100); 
	BackMusicThread bmt;
 	JPanel splash = new JPanel();
 	public AudioStream as;
    public 	void initGame(){
    	mb=new MonitorButton();
		jButton=new JButton[150];
		a=new int[150];
		for(int i=0;i<(level*4);i++){
			a[i]=(i%level)+1;
			}
		for(int i=level*4;i<150;i++){
			a[i]=0;
			}		
			
		for(int i=0;i<1000;i++){
			int b=(int)(Math.random()*150);
			int index;
			index=a[0];
			a[0]=a[b];
			a[b]=index;
			}
		 image=new ImageIcon[37];
		for(int i=0;i<37;i++){
			switch(i){
				case 0:image[i]=new ImageIcon("01.jpg");break;
				case 1:image[i]=new ImageIcon("02.jpg");break;
				case 2:image[i]=new ImageIcon("03.jpg");break;
				case 3:image[i]=new ImageIcon("04.jpg");break;
				case 4:image[i]=new ImageIcon("05.jpg");break;
				case 5:image[i]=new ImageIcon("06.jpg");break;
				case 6:image[i]=new ImageIcon("07.jpg");break;
				case 7:image[i]=new ImageIcon("08.jpg");break;
				case 8:image[i]=new ImageIcon("09.jpg");break;
				case 9:image[i]=new ImageIcon("10.jpg");break;
				case 10:image[i]=new ImageIcon("11.jpg");break;
				case 11:image[i]=new ImageIcon("12.jpg");break;
				case 12:image[i]=new ImageIcon("13.jpg");break;
				case 13:image[i]=new ImageIcon("14.jpg");break;
				case 14:image[i]=new ImageIcon("15.jpg");break;
				case 15:image[i]=new ImageIcon("16.jpg");break;
				case 16:image[i]=new ImageIcon("17.jpg");break;
				case 17:image[i]=new ImageIcon("18.jpg");break;
				case 18:image[i]=new ImageIcon("19.jpg");break;
				case 19:image[i]=new ImageIcon("20.jpg");break;
				case 20:image[i]=new ImageIcon("21.jpg");break;
				case 21:image[i]=new ImageIcon("22.jpg");break;
				case 22:image[i]=new ImageIcon("23.jpg");break;
				case 23:image[i]=new ImageIcon("24.jpg");break;
				case 24:image[i]=new ImageIcon("25.jpg");break;
				case 25:image[i]=new ImageIcon("26.jpg");break;
				case 26:image[i]=new ImageIcon("27.jpg");break;
				case 27:image[i]=new ImageIcon("28.jpg");break;
				case 28:image[i]=new ImageIcon("29.jpg");break;
				case 29:image[i]=new ImageIcon("30.jpg");break;
				case 30:image[i]=new ImageIcon("31.jpg");break;
				case 31:image[i]=new ImageIcon("32.jpg");break;
				case 32:image[i]=new ImageIcon("33.jpg");break;
				case 33:image[i]=new ImageIcon("34.jpg");break;
				case 34:image[i]=new ImageIcon("35.jpg");break;
				case 35:image[i]=new ImageIcon("36.jpg");break;
				case 36:image[i]=new ImageIcon("37.jpg");break;
								
				}			
			}
			for(int i=0;i<150;i++){
				if(a[i]==0){
					jButton[i]=new JButton();jButton[i].setVisible(false);jpcenter.add(jButton[i]);jButton[i].addActionListener(mb);
					}
				else
					{jButton[i]=new JButton(image[a[i]-1]);jpcenter.add(jButton[i]);jButton[i].addActionListener(mb);        
						}
				}
			
			
			b=new int[10][15];
			int m=0;
			for(int i=0;i<10;i++){
				for (int j=0;j<15;j++){
					b[i][j]=a[m];	
					m++;
					}
				}
						
    
    	}
    public void reSet(){
    	int num=0;  
    	for(int i=0;i<10;i++){
    		for(int j=0;j<15;j++){
    			a[num]=b[i][j];
    			num++;
    			}
    		}
    	for(int i=0;i<1000;i++){
			int b=(int)(Math.random()*150);
			int index;
			index=a[0];
			a[0]=a[b]; 
			a[b]=index;
			}
			
			
		for(int i=0;i<150;i++){
			if(a[i]==0){
				jButton[i].setVisible(false);
				}
			else{
				jButton[i].setIcon(image[a[i]-1]);jButton[i].setVisible(true);
				}			
			
			}
    	int nu=0;  
    	for(int i=0;i<10;i++){
    		for(int j=0;j<15;j++){
    		b[i][j]=a[nu];
    			nu++;
    			}
    		}
    	
    	}
    public void backMusic()
	{
		try 
	 	{
		  	FileInputStream fileau=new 
			FileInputStream("truelove.wav");
		  	as=new AudioStream(fileau);
		  	AudioPlayer.player.start(as);
	 	}
	 	catch (Exception e) {}
	}
	public void selectMusic()
	{
		try 
	 	{
		  	FileInputStream fileau=new 
			FileInputStream("select.wav");
		  	AudioStream ab=new AudioStream(fileau);
		  	AudioPlayer.player.start(ab);
	 	}
	 	catch (Exception e) {}
	}
	public void cancleMusic()
	{
		try 
	 	{
		  	FileInputStream fileau=new 
			FileInputStream("cancle.wav");
		  	AudioStream ab=new AudioStream(fileau);
		  	AudioPlayer.player.start(ab);
	 	}
	 	catch (Exception e) {}
	}
	public void resetMusic()
	{
		try 
	 	{
		  	FileInputStream fileau=new 
			FileInputStream("reset.wav");
		  	AudioStream ab=new AudioStream(fileau);
		  	AudioPlayer.player.start(ab);
	 	}
	 	catch (Exception e) {}
	}
	public void winMusic()
	{
		try 
	 	{
		  	FileInputStream fileau=new 
			FileInputStream("win.MID");
		  	AudioStream ab=new AudioStream(fileau);
		  	AudioPlayer.player.start(ab);
	 	}
	 	catch (Exception e) {}
	}
	public void gameOver(){
		AudioPlayer.player.stop(as);
 		for(int i=0;i<jButton.length;i++)
 			jButton[i].setEnabled(false);
 			//JOptionPane.showMessageDialog(this, "Sorry,You Lose! Again?", "Game Over",
			//	JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
		JOptionPane msg=new JOptionPane();
			//msg.showConfirmDialog(jFramePane, 
//"You are Lost!!!!      Again?", "choose one", JOptionPane.YES_NO_OPTION);

msg.showMessageDialog(jFramePane,"You are Lost!!!    Again?","Lost",msg.INFORMATION_MESSAGE,image[36]);

	
				}
	public boolean check1(int x1,int y1,int x2,int y2){
 			if(x1==x2)
 			{	if(y1>y2)
 				{	for(int i=y2+1;i<y1;i++)
 					{	if(b[x1][i]!=0)
 						return false;
 					}
 				//	return true;
 				}
 				else if(y1<y2)
 				{	for(int i=y1+1;i<y2;i++)
 					{	if(b[x1][i]!=0)
 						return false;
 					}
 				//	return true;
 					
 				}
 		
 			}
 			else if(y1==y2)
 			{if(x1>x2)
 				{	for(int i=x2+1;i<x1;i++)
 					{	if(b[i][y1]!=0)
 						return false;
 					}
 				//	return true;
 				}
 				else if(x1<x2)
 				{	for(int i=x1+1;i<x2;i++)
 					{	if(b[i][y1]!=0)
 						return false;
 					}
 				//	return true;
 					
 				}
 				
 				
 			}
 			return true;		
 		
 		}

 	public boolean check2(int x1,int y1,int x2,int y2){
 		if(check1(x2,y2,x1,y2)&&check1(x1,y1,x1,y2)&&b[x1][y2]==0||check1(x1,y1,x2,y1)&&check1(x2,y1,x2,y2)&&b[x2][y1]==0)
 			return true;
 		else 
 			return false;
 		
 		}

 	public boolean check3(int x1,int y1,int x2,int y2){
 			for(int i=0;i<=14;i++)
 				{	if(i!=y2&&i!=y1)
 					{
 						if(check1(x1,i,x2,i)&&(b[x1][i]==0)&&(b[x2][i]==0)&&check1(x1,i,x1,y1)&&check1(x2,i,x2,y2))
 							return true;
 					}
 				
 				
 				}
 			for(int j=0;j<=9;j++)
 				{	if(j!=x2&&j!=x1)
 					{
 						if(check1(j,y1,j,y2)&&(b[j][y1]==0)&&(b[j][y2]==0)&&check1(j,y1,x1,y1)&&check1(j,y2,x2,y2))
 							return true;
 					}
 				
 				
 				}
 			return false;
 			
 		
 		}
 	public boolean check(int x1,int y1,int x2,int y2){
 	
 			if(x1==x2&&y1==y2)
 				return false;
 			
 			else if(x1==x2&&(y1==y2+1||y2==y1+1)||y1==y2&&(x1==x2+1||x2==x1+1))
 				  return true;
 		//	else
 		//		  return false;
 	
 			else if(x1==x2||y1==y2)
 				{if(check1(x1,y1,x2,y2))
 						return true;
 				 else                      
 					if(check3(x1,y1,x2,y2))
 						return true	;
 				}
 					
 				 else
 				 { if(check2(x1,y1,x2,y2))
 				 	    return true;
 				 	 
					else  	if(check3(x1,y1,x2,y2))
						          return true;
				}
					      				 	 
 		return false;			 	
		}
	
	public LinkGame(String title){
    	
		setTitle(title);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		fwidth=800;
		fheight=600;
		setBounds(75,75,fwidth,fheight);
		//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
		setResizable(false);

⌨️ 快捷键说明

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