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

📄 laymines.java

📁 《Java课程设计》第二版
💻 JAVA
字号:
import java.util.*;
import javax.swing.*;
public class LayMines{   
     ImageIcon mineIcon; 
     LayMines() {
          mineIcon=new ImageIcon("mine.gif");
     }
     public void layMinesForBlock(Block block[][],int mineCount){
         int row=block.length;
         int column=block[0].length;
         LinkedList<Block> list=new LinkedList<Block>(); 
         for(int i=0;i<row;i++) {
             for(int j=0;j<column;j++)
                list.add(block[i][j]);
         } 
         while(mineCount>0){
            int size=list.size();             // list返回节点的个数
            int randomIndex=(int)(Math.random()*size);
            Block b=list.get(randomIndex);
            b.setIsMine(true);
            b.setName("雷");
            b.setMineIcon(mineIcon);
            list.remove(randomIndex);        //list删除索引值为randomIndex的节点
            mineCount--;
        } 
        for(int i=0;i<row;i++){
           for(int j=0;j<column;j++){
              if(block[i][j].isMine()){
                 block[i][j].setIsOpen(false);
                 block[i][j].setIsMark(false);
              }
              else {
                 int mineNumber=0;
                 for(int k=Math.max(i-1,0);k<=Math.min(i+1,row-1);k++) {
                       for(int t=Math.max(j-1,0);t<=Math.min(j+1,column-1);t++){
                          if(block[k][t].isMine())
                              mineNumber++; 
                       }
                 }
                 block[i][j].setIsOpen(false); 
                 block[i][j].setIsMark(false);       
                 block[i][j].setName(""+mineNumber);
                 block[i][j].setAroundMineNumber(mineNumber);
              }
           } 
        }    
    }
}

⌨️ 快捷键说明

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