;lassBlock{Stringname;//名字,比如"雷"或数字intaroundMineNumber;//周围雷的数目ImageIconmineIcon;//雷的图标booleanisMine=false;//是否是雷booleanisMark=false;//是否被标记booleanisOpen=false;//是否被挖开publicvoidsetName(Stringname){=name;}publicvoidsetAroundMineNumber(intn){aroundMineNumber=n;}publicintgetAroundMineNumber(){returnaroundMineNumber;}publicStringgetName(){returnname;}publicbooleanisMine(){returnisMine;}publicvoidsetIsMine(booleanb){isMine=b;}publicvoidsetMineIcon(ImageIconicon){mineIcon=icon;}publicImageIcongetMineicon(){returnmineIcon;}publicbooleangetIsOpen(){returnisOpen;}publicvoidsetIsOpen(booleanp){isOpen=p;}publicbooleangetIsMark(){returnisMark;}publicvoidsetIsMark(booleanm){isMark=m;}}.*;.*;lassLayMines{ImageIconmineIcon;LayMines(){mineIcon=newImageIcon("");}publicvoidlayMinesForBlock(Blockblock[][],intmineCount){introw=;intcolumn=block[0].length;LinkedList<Block>list=newLinkedList<Block>();for(inti=0;i<row;i++){for(intj=0;j<column;j++)(block[i][j]);}while(mineCount>0){intsize=();//list返回节点的个数intrandomIndex=(int)(()*size);Blockb=(randomIndex);(true);("雷");(mineIcon);(randomIndex);//list删除索引值为randomIndex的节点mineCount--;}for(inti=0;i<row;i++){for(intj=0;j<column;j++){if(block[i][j].isMine()){block[i][j].setIsOpen(false);block[i][j].setIsMark(false);}else{intmineNumber=0;for(intk=(i-1,0);k<=(i+1,row-1);k++){for(intt=(j-1,0);t<=(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);}}}}}.*;.*;.*;lassMineAreaextendsJPanelimplementsActionListener,MouseListener{JButtonreStart;Block[][]block;BlockView[][]blockView;LayMineslay;introw,colum,mineCount,markMount;//雷区的行数、列数以及地雷个数和用户给出的标记数ImageIconmark;intgra
Java语言 扫雷游戏完整源代码 来自淘豆网m.daumloan.com转载请标明出处.