关于网友提出的“ 高分急求java代码注释-扫雷小游戏的部分java代码的注释”问题疑问,本网通过在网上对“ 高分急求java代码注释-扫雷小游戏的部分java代码的注释”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 高分急求java代码注释-扫雷小游戏的部分java代码的注释
描述: import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MineArea extends JPanel implements ActionListener,MouseListener{
JButton reStart;
Block [][] block;
BlockView [][] blockView;
LayMines lay;
int row,colum,mineCount,markMount;//雷区的行数、列数以及地雷个数和用户给出的标记数
ImageIcon mark;
int grade;
JPanel pCenter,pNorth;
JTextField showTime,showMarkedMineCount; //显示用时以及标记数
Timer time; //计时器
int spendTime=0;
Record record;
public MineArea(int row,int colum,int mineCount,int grade) {
reStart=new JButton("重新开始");
mark=new ImageIcon("mark.gif"); //探雷标记
time=new Timer(1000,this);
showTime=new JTextField(5);
showMarkedMineCount=new JTextField(5);
showTime.setHorizontalAlignment(JTextField.CENTER);
showMarkedMineCount.setHorizontalAlignment(JTextField.CENTER);
showMarkedMineCount.setFont(new Font("Arial",Font.BOLD,16));
showTime.setFont(new Font("Arial",Font.BOLD,16));
pCenter=new JPanel();
pNorth=new JPanel();
lay=new LayMines();
/>
initMineArea(row,colum,mineCount,grade); //初始化雷区,见下面的LayMines()
reStart.addActionListener(this);
pNorth.add(showMarkedMineCount);
pNorth.add(reStart);
pNorth.add(showTime);
setLayout(new BorderLayout());
add(pNorth,BorderLayout.NORTH);
add(pCenter,BorderLayout.CENTER);
}
public void initMineArea(int row,int colum,int mineCount,int grade){
pCenter.removeAll();
spendTime=0;
/>
markMount=mineCount;
this.row=row;
this.colum=colum;
this.mineCount=mineCount;
this.grade=grade;
block=new Block[row][colum];
for(int i=0;i<>
for(int j=0;j<>
block[i][j]=new Block();
}
lay.layMinesForBlock(block,mineCount);
blockView=new BlockView[row][colum];
pCenter.setLayout(new GridLayout(row,colum));
for(int i=0;i<>
for(int j=0;j<>
blockView[i][j]=new BlockView();
blockView[i][j].giveView(block[i][j]); //给block[i][j]提供视图
pCenter.add(blockView[i][j]);
blockView[i][j].getBlockCover().addActionListener(this);
blockView[i][j].getBlockCover().addMouseListener(this);
blockView[i][j].seeBlockCover();
blockView[i][j].getBlockCover().setEnabled(true);
blockView[i][j].getBlockCover().setIcon(null);
}
}
showMarkedMineCount.setText(""+markMount);
validate();
}
public void setRow(int row){
this.row=row;
}
public void setColum(int colum){
this.colum=colum;
}
public void setMineCount(int mineCount){
this.mineCount=mineCount;
}
public void setGrade(int grade) {
this.grade=grade;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()!=reStart&&e.getSource()!=time) {
time.start();
int m=-1,n=-1;
for(int i=0;i<>
for(int j=0;j<>
if(e.getSource()==blockView[i][j].getBlockCover()){
m=i;
n=j;
break;
}
}
}
if(block[m][n].isMine()) {
for(int i=0;i<>
for(int j=0;j<>
blockView[i][j].getBlockCover().setEnabled(false);
if(block[i][j].isMine())
blockView[i][j].seeBlockNameOrIcon();
}
}
time.stop();
spendTime=0;
markMount=mineCount;
}
else {
show(m,n); //见本类后面的show方法
}
}
if(e.getSource()==reStart) {
initMineArea(row,colum,mineCount,grade);
}
if(e.getSource()==time){
spendTime++;
showTime.setText(""+spendTime);
}
inquireWin();
}
public void show(int m,int n) {
if(block[m][n].getAroundMineNumber()>0&&block[m][n].getIsOpen()==false){
blockView[m][n].seeBlockNameOrIcon();
block[m][n].setIsOpen(true);
return;
}
else if(block[m][n].getAroundMineNumber()==0&&block[m][n].getIsOpen()==false){
blockView[m][n].seeBlockNameOrIcon();
block[m][n].setIsOpen(true);
for(int k=Math.max(m-1,0);k<=Math.min(m+1,row-1);k++) {
for(int t=Math.max(n-1,0);t<=Math.min(n+1,colum-1);t++)
show(k,t);
}
}
}
public void mousePressed(MouseEvent e){
JButton source=(JButton)e.getSource();
for(int i=0;i<>
for(int j=0;j<>
if(e.getModifiers()==InputEvent.BUTTON3_MASK&&
source==blockView[i][j].getBlockCover()){
if(block[i][j].getIsMark()) {
source.setIcon(null);
block[i][j].setIsMark(false);
markMount=markMount+1;
showMarkedMineCount.setText(""+markMount);
}
else{
source.setIcon(mark);
block[i][j].setIsMark(true);
markMount=markMount-1;
showMarkedMineCount.setText(""+markMount);
}
}
}
}
}
public void inquireWin(){
int number=0;
for(int i=0;i<>
for(int j=0;j<>
if(block[i][j].getIsOpen()==false)
number++;
}
}
if(number==mineCount){
time.stop();
record=new Record();
switch(grade){
case 1: record.setGrade("初级");
break;
case 2: record.setGrade("中级");
break;
case 3: record.setGrade("高级");
break;
}
record.setTime(spendTime);
record.setVisible(true);
}
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
}
以上介绍了“ 高分急求java代码注释-扫雷小游戏的部分java代码的注释”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1949642.html