扫雷代码

贡献者:游客40457511 类别:代码 时间:2018-08-03 10:50:44 收藏数:1141 评分:2.5
返回上页 举报此文章
请选择举报理由:




收藏到我的文章 改错字
public class Main{
public static void main(String args[])
{MyFrame app = new MyFrame();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}{public void actionPerformed(ActionEvent e)
{setBomb();
}});
primary.addActionListener(new ActionListener())
{public void actionPerformed(ActionEvent e)
{row = PRIMARY_ROW;
col = PRIMARY_COL;
bombnum = PRIMARY_BOMB;
setBomb();
}});
medium.addActionListener(new ActionListener())
{public void actionPerformed(ActionEvent e)
{row = MEDIUM_ROW;
col = MEDIUM_COL;
bombnum = MEDIUM_BOMB;
setBomb();
}});
senior.addActionListener(new ActionListener())
{public void actionPerformed(ActionEvent e)
{row = SENIOR_ROW;
col = SENIOR_COL;
bombnum = SENIOR_BOMB;
setBomb();
}});
ssuper.addActionListener(new ActionListener())
{public void actionPerformed(ActionEvent e)
{row = SUPER_ROW;
col = SUPER_COL;
bombnum = SUPER_BOMB;
setBomb();
}});
exitItem.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{System.exit(0);
}});
Container c = getContentPane();
MenuPanel = new JPanel();
noflagbombnum = new JLabel();
MenuPanel.add(noflagbombnum);
c.add(MenuPanel,BorderLayout.NORTH);
BombPanel = new JPanel();
c.add(BombPanel,BorderLayout.CENTER);
setBomb();
}public void setBomb()
{BombPanel.removeAll();
bomb = new Bomb[row][col];
BombPanel.setLayout(new GridLayout(row,col));
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{bomb[i][j] = new Bomb(i,j);
bomb[i][j].addMouseListener(new MouseAdapter()
{public void mouseClicked(MouseEvent e)
{Bomb ebomb = (Bomb)e.getSource();
if(e.getButton() == MouseEvent.BUTTON1)
{if(!ebomb.isClicked&&!ebomb.isRight)
{if(!ebomb.isBomb)
else
{for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
if(bomb[i][j].isBomb)
bomb[i][j].setIcon(iconbomb);
ebomb.setIcon(icons);
ebomb.setIcon(iconbomb0);
isLose();
setBomb();
}}}else if(e.getButton() == MouseEvent.BUTTON3)
{if (!ebomb.isClicked)
{ebomb.Bombflag = (ebomb.Bombflag + 1) % 3;
if (ebomb.Bombflag == 1)
{if (leftbombnum > 0)
{ebomb.setIcon(iconflag);
ebomb.isRight = true;
leftbombnum--;
}else
ebomb.Bombflag = 0;
}else if (ebomb.Bombflag == 2)
{leftbombnum++;
ebomb.setIcon(iconflag2);
ebomb.isRight = false;
}else
ebomb.setIcon(icons);
noflagbombnum.setText(leftbombnum);
isWin();
}}}});
BombPanel.add(bomb[i][j]);
}blocknum = row * col;
leftbombnum = bombnum;
leftblocknum = blocknum - bombnum;
weight = row * 20 + 70;
width = col * 20;
setSize(width,weight);
setResizable(false);
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{bomb[i][j].BombRoundCount = 9;
bomb[i][j].Bombflag = 0;
bomb[i][j].isBomb = false;
bomb[i][j].isClicked = false;
bomb[i][j].isRight = false;
bomb[i][j].setIcon(icons);
}Random rand = new Random();
for(int i=0;i<bombnum;)
{int x = rand.nextInt(row);
int y = rand.nextInt(col);
if(!bomb[x][y].isBomb)
{bomb[x][y].isBomb = true;
i++;
}}calculateRoundBomb();
}public void calculateRoundBomb()
{for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{int count = 0;
if(!bomb[i][j].isBomb)
for(int x=i-1;x<=i+1;x++)
for(int y=j-1;y<=j+1;y++)
if(x>=0&&y>=0&&x<row&&y<col&&bomb[x][y].isBomb)
count++;
bomb[i][j].BombRoundCount = count;
}}}public void isNull(Bomb clickbomb)
{int x = clickbomb.bx;
int y = clickbomb.by;
for(int i=x-1;i<=x+1;i++)
for(int j=y-1;j<=y+1;j++)
if(i>=0&&j>=0&&i<row&&j<col)
if(!bomb[i][j].isBomb&&!bomb[i][j].isClicked&&!bomb[i][j].isRight)
open(bomb[i][j]);
}public void open(Bomb clickbomb)
{clickbomb.isClicked = true;
leftblocknum--;
if(clickbomb.BombRoundCount > 0)
{if(clickbomb.BombRoundCount == 1)
clickbomb.setIcon(icon1);
else if(clickbomb.BombRoundCount == 2)
clickbomb.setIcon(icon2);
else if(clickbomb.BombRoundCount == 3)
clickbomb.setIcon(icon3);
else if(clickbomb.BombRoundCount == 4)
clickbomb.setIcon(icon4);
else if(clickbomb.BombRoundCount == 5)
clickbomb.setIcon(icon5);
else if(clickbomb.BombRoundCount == 6)
clickbomb.setIcon(icon6);
else if(clickbomb.BombRoundCount == 7)
clickbomb.setIcon(icon7);
else if(clickbomb.BombRoundCount == 8)
clickbomb.setIcon(icon8);
}else
{clickbomb.setIcon(icon0);
isNull(clickbomb);
}}}final class Bomb extends JButton{
int bx,by;
int BombRoundCount;
int Bombflag;
boolean isBomb;
boolean isClicked;
boolean isRight;
public static int blockopennum = 0;
public Bomb(int x,int y)
{bx = x;
by = y;
BombRoundCount = 9;
Bombflag = 0;
isBomb = false;
isClicked = false;
isRight = false;
}}
声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。
文章热度:
文章难度:
文章质量:
说明:系统根据文章的热度、难度、质量自动认证,已认证的文章将参与打字排名!

本文打字排名TOP20

用户更多文章推荐