public class mainpanel extends JPanel implements ActionListener{
public mainpanel() {
// TODO Auto-generated constructor stub
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
JButton btn=new JButton();
btn.setPreferredSize(new Dimension(60,60));
btn.addActionListener(this);
add(btn);
mainFrame.btns[i][j]=btn;
}
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton selectButton=(JButton) e.getSource();
boolean flag=false;
for (Ship ship : BattleShip.list) {
if (!flag) {
for (Position position : ship.getShip()) {
int x=position.getX();
int y=position.getY();
if (selectButton==mainFrame.btns[x][y]) {
flag=true;
JOptionPane.showMessageDialog(BattleShip.MyFrame.getContentPane(),
"恭喜您打中了!", "系统信息", JOptionPane.WARNING_MESSAGE);
return;
}
}
}else {
return;
}
}
if (!flag) {
JOptionPane.showMessageDialog(BattleShip.MyFrame.getContentPane(),
"哎呦!打偏了", "系统信息", JOptionPane.WARNING_MESSAGE);
selectButton.setText("X");
}
}写BattleShip游戏 MainPanel类 游戏大致意思就是10*10的格子里面有五条不同类型的船不同类型的船占有不同长度的格子玩家点击格子如果有船就炸点击格子没有这个格子里面没有船那么这个格子将被标记下面图中打X的格子就是没有船被标记的格子然饿空的格子就是内部有船的格子但是效果并不好 界面优化的部分不太会做,想求教以下:当这条船局部被炸 格子里显示爆炸(或者空格子被点击后更改颜色为蓝色)如果整条船都被炸,那么就在窗口中显现出一个这类船的图形求求大神T T万分感谢 不 跪谢!!!
添加回答
举报
0/150
提交
取消