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

📄 bumb.java

📁 这是一个扫雷程序 与windows的扫雷界面相同
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    	 	    		bw.readLine();
    	 	    		int temp=Integer.parseInt(bw.readLine());    	 	    	    	 	    		
    	 	    		if(time<temp)//打破记录
    	 	    		{
    	 	    		    fm=new JFrame("win");    	 	    		
    	 	    			fm.setSize(140,200);
    	 	    			fm.setLayout(null);    	 	    			
    	 	    			JTextArea t1=new JTextArea();
    	 	    			t1.setText("你已经破初级记录\n请输入尊姓大名");
    	 	    			t2=new JTextField("匿名");
    	 	    			t1.setEditable(false);
    	 	    			t1.setSize(200,40);
    	 	    			t2.setEditable(true);      	 	    			
    	 	    			t2.setForeground(Color.CYAN);
    	 	    			t2.setSize(100,20);
    	 	    			fm.setVisible(true);    	 	    		
    	 	    			fm.add(t1);
    	 	    			fm.add(t2);  	 	    		
    	 	    		    t1.setLocation(20,40);
    	 	    		    t2.setLocation(20,80);
    	 	    		    JButton b=new JButton("确定 ");
    	 	    		    b.addActionListener(this);    	 	    		    
    	 	    		    b.setSize(70,20);
    	 	    		    fm.add(b);
    	 	    		    b.setLocation(20,110);
    	 	    		}
    	 	    	
    	 	    	
    	 	    	}//判断是否打破记录
    	 	        catch(FileNotFoundException f)
    	 	        {
    	 	        
    	 	        }
    	 	        catch(IOException f)
    	 	        {
    	 	        
    	 	        }
    	 	        	    	 	        	 	   
    	 	      
    	 	       	 	       	 	       	 	    	
    	 	    	}
    	 	    	ImageIcon win=new ImageIcon("image/win.jpg");
    	 	    	b.setIcon(win);
    	 	        for(int k=0;k<81;k++)    	 	        	
    	 	        	label[k].removeMouseListener(this);		
    	 	    
    	 	    } 
    	 	  		
    	 	} 
    	  	    	
    	}
    //*******************************************************************************//定义结束    	 	
    
   	//*******************************************************************************//实现KeyListener接口的方法
   
   	public void keyPressed(KeyEvent e)
   	{
   		if(e.getKeyCode() == KeyEvent.VK_K && e.isControlDown())
			System.out.println("OK"); 

   	}
   	
   	public void keyReleased(KeyEvent e)
   	{
   		System.out.println("ikkk");		
   	}
   	
   	public void keyTyped(KeyEvent e)
   	{
   	
		System.out.println("ikkk");	
   	}
   	
   	//*******************************************************************************//完成对KeyListener接口接口方的定义	
   		public void mouseEntered(MouseEvent e)//鼠标进入某一区域事件
    	{
    
    	}
 
    	public void mouseExited(MouseEvent e)//鼠标退出某一区域事件
    	{
    
    	}

    	public void mouseClicked(MouseEvent e)//鼠标单击事件
    	{    	

    	}


//***********************************************************************************************//定义结束	    



//***********************************************************************************************//扫雷数据的初始化以及产生雷的坐标
public void start()
{	
	for(int i=0;i<9;i++)//清空原来的雷区
		for(int j=0;j<9;j++)
			position[i][j]=0;	
	
	Random r=new Random();    
    int temp[]=new int[10];
    for(int i=0;i<10;i++)
    {
    	temp[i]=r.nextInt(81);
judge:    	for(int j=0;j<i&&i!=0;j++)
    	    {   	 		
    			if(temp[i]==temp[j])
    				{    				
    					temp[i]=r.nextInt(81);
    	    	    	continue judge;
    		        }
    		}	  
        
        int x=temp[i]%9;
    	int y=temp[i]/9; 
        
        position[y][x]=1;//产生雷的坐标
    }	  
    
    for(int i=0;i<81;i++)
    {
    	System.out.print(position[i/9][i%9]);
    	if((i+1)%9==0)
    		System.out.println();	
    }          
    
    for(int i=0;i<9;i++)
    	for(int j=0;j<9;j++)
    	isAlive[i][j]=true;
    
    for(int i=0;i<81;i++)
    	haveFlag[i]=false;
    
    for(int i=0;i<81;i++)
    	haveSign[i]=false;
    
    label1.setText("010");
    label2.setText("000");
    time=1;//将时间置为1
    timeThread=null;//重新建立时间线程

}	   


//***********************************************************************************************//	方法定义结束    


//************************************************************************************************//探寻雷周围的情况
	    
public void search(int x,int y)
{
	int amount=0;
	ImageIcon unknown=new ImageIcon("image/unknown.jpg");
	
    if(x==0&&y==0)
    {
    	amount=position[0][1]+position[1][0]+position[1][1];	
    }     
    else if(x==8&&y==8)
    {
    	amount=position[7][7]+position[8][7]+position[7][8];	
    }
    else if(x==8&&y==0)
    {
    	amount=position[0][7]+position[1][7]+position[1][8];
    }
    else if(x==0&&y==8)
    {
    	amount=position[7][0]+position[7][1]+position[8][1];	
    }
    
    else if(x==0&&y!=0&&y!=8)
    {
    	amount=position[y-1][0]+position[y+1][0]+position[y-1][1]+position[y][1]+position[y+1][1];	
    }
    else if(x==8&&y!=0&&y!=8)
    {
     	amount=position[y-1][8]+position[y-1][7]+position[y][7]+position[y+1][7]+position[y+1][8];	
    }
	else if(y==0&&x!=0&&x!=8)
	{
		amount=position[0][x-1]+position[1][x-1]+position[1][x]+position[1][x+1]+position[0][x+1];	
	}
    else if(y==8&&x!=0&&x!=8)
    {
    	amount=position[8][x-1]+position[7][x-1]+position[7][x]+position[7][x+1]+position[8][x+1];	
    }
    else 
    {
    	amount=position[y-1][x-1]+position[y-1][x]+position[y-1][x+1]+position[y][x+1]+position[y+1][x+1]+position[y+1][x]+position[y+1][x-1]+position[y][x-1];	
    }



    switch(amount)
    {
    	case 0:    	        	        	  	
            	label[y*9+x].setIcon(unknown);
            	label[y*9+x].removeMouseListener(this);                 	            	
          	    isAlive[y][x]=false;
          	    if(x==0&&y==0)
          	    {
          	    	if(isAlive[0][1]&&haveFlag[1]==false)
          	    		search(1,0);
          	    	if(isAlive[1][0]&&haveFlag[9]==false)
          	    		search(0,1);
          	    	if(isAlive[1][1]&&haveFlag[10]==false)
          	    		search(1,1);
          	    }                          
            
                else if(x==0&&y==8)
                {
                	if(isAlive[7][0]&&haveFlag[72]==false)
                		search(0,7);	
                    if(isAlive[7][1]&&haveFlag[64]==false)
                    	search(1,7);
                    if(isAlive[8][1]&&haveFlag[73]==false)
                    	search(1,8);
                   
                }
                else if(x==8&&y==8)
                {
                	if(isAlive[8][7]&&haveFlag[79]==false)
                		search(7,8);
                    if(isAlive[7][7]&&haveFlag[70]==false)
                    	search(7,7);
                    if(isAlive[7][8]&&haveFlag[71]==false)
                    	search(8,7);
                }
             
                else if(x==8&&y==0)
                {
                	if(isAlive[0][7]&&haveFlag[7]==false)
                		search(7,0);
                	if(isAlive[1][7]&&haveFlag[16]==false)
                		search(7,1);	
                    if(isAlive[1][8]&&haveFlag[17]==false)
                    	search(8,1);
                }
                
               else if(x==0&&y!=0&&y!=8)               
               {
               		if(isAlive[y-1][0]&&haveFlag[9*y-9]==false)
               			search(0,y-1);
               		if(isAlive[y-1][1]&&haveFlag[9*y-8]==false)
               			search(1,y-1);
               		if(isAlive[y][1]&&haveFlag[9*y+1]==false)
               			search(1,y);
               		if(isAlive[y+1][1]&&haveFlag[9*y+10]==false)
               			search(1,y+1);
               		if(isAlive[y+1][0]&&haveFlag[9*y+9]==false)
               			search(0,y+1);	
               }
               
               else if(x==8&&y!=0&&y!=8)
               {
               		if(isAlive[y-1][8]&&haveFlag[9*y-1]==false)
               			search(8,y-1);
               		if(isAlive[y-1][7]&&haveFlag[9*y-2]==false)
               			search(7,y-1);
               		if(isAlive[y][7]&&haveFlag[9*y+7]==false)
               			search(7,y);
               		if(isAlive[y+1][7]&&haveFlag[9*y+16]==false)
               			search(7,y+1);
               		if(isAlive[y+1][8]&&haveFlag[9*y+17]==false)
               			search(8,y+1);
                              
               }
               else if(y==0&&x!=0&&x!=8)
               {
               		if(isAlive[0][x-1]&&haveFlag[x-1]==false)
               			search(x-1,0);
               		if(isAlive[1][x-1]&&haveFlag[x+8]==false)
               			search(x-1,1);
               		if(isAlive[1][x]&&haveFlag[9+x]==false)
               			search(x,1);
               		if(isAlive[1][x+1]&&haveFlag[x+10]==false)
               			search(x+1,1);
               		if(isAlive[0][x+1]&&haveFlag[x+1]==false)
               			search(x+1,0);	
               }
               
               else if(y==8&&x!=0&&x!=8)
               {
               		if(isAlive[8][x-1]&&haveFlag[x+71]==false)
               			search(x-1,8);
               		if(isAlive[7][x-1]&&haveFlag[x+62]==false)
               			search(x-1,7);
               		if(isAlive[7][x]&&haveFlag[x+63]==false)
               			search(x,7);
               		if(isAlive[7][x+1]&&haveFlag[x+64]==false)
               			search(x+1,7);
               		if(isAlive[8][x+1]&&haveFlag[x+73]==false)
               			search(x+1,8);	
               }
               else 
               {
               		if(isAlive[y-1][x-1]&&haveFlag[9*y+x-10]==false)
               			search(x-1,y-1);
               		if(isAlive[y-1][x]&&haveFlag[9*y+x-9]==false)
               			search(x,y-1);
               		if(isAlive[y-1][x+1]&&haveFlag[9*y+x-8]==false)
               			search(x+1,y-1);
               		if(isAlive[y][x+1]&&haveFlag[9*y+x+1]==false)
               			search(x+1,y);
               		if(isAlive[y+1][x+1]&&haveFlag[9*y+x+10]==false)
               			search(x+1,y+1);
               		if(isAlive[y+1][x]&&haveFlag[9*y+x+9]==false)
               			search(x,y+1);
               		if(isAlive[y+1][x-1]&&haveFlag[9*y+x+8]==false)
               			search(x-1,y+1);
               		if(isAlive[y][x-1]&&haveFlag[9*y+x-1]==false)
               		search(x-1,y);               			
               
               }
                             
                 
           
           
            break;
         
        case 1:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.blue);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("1");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);            
     		isAlive[y][x]=false;
            break;
           
        case 2:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.green);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("2");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);         
            isAlive[y][x]=false;
            break;

        case 3:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.red);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("3");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;


        case 4:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.pink);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("4");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;


        case 5:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.orange);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("5");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;

        case 6:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.black);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("6");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;

        case 7:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.cyan);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("7");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;


        case 8:           	
        	label[y*9+x].setIcon(unknown);
        	label[y*9+x].setForeground(Color.blue);
        	label[y*9+x].setFont(new Font("Arial Black",Font.PLAIN,15));
        	label[y*9+x].setText("8");
            label[y*9+x].setHorizontalTextPosition(SwingConstants.CENTER); 
            label[y*9+x].removeMouseListener(this);
            isAlive[y][x]=false;
            break;
    }

}


//************************************************************************************************//方法体结束	    
	    
//*************************************************************************************************//实现timeThread里面的抽象方法
		public void run()
		{				   
			while(timeThread!=null)
			{			
				try{													
						InputStream in=new FileInputStream("Sound/time.WAV");//建立声音数据流
						AudioStream astime=new AudioStream(in);									
						if(haveSound)
						{
							AudioPlayer.player.start(astime);																			
						}
						timeThread.sleep(1000);
						AudioPlayer.player.stop(astime);
						time++;	
						if(0<=time&&time<=9)
							label2.setText("00"+String.valueOf(time));
					    else if(time>=10&&time<=99)
					    	label2.setText("0"+String.valueOf(time));
					    						
		        	}				
				catch(InterruptedException i)
				{
				
				}
			    catch(FileNotFoundException e)
			    {
			    }
			
			    catch(IOException e)
			    {
			    
			    }
			}
		
		}
		
		public void stop()
		{
			timeThread=null;	
		}

//**************************************************************************************************//	    
	    
	    public static void main(String args[])
	    {
	    	new Bomb();
	    
	    }




}



⌨️ 快捷键说明

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