import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
//import java.io.IOException;
//import javax.imageio.ImageIO;
import javax.swing.*;
public class frogPanel extends JPanel implements MouseListener{
private frogCell[] cells;//动物方块数组
private frogCell cellBlank=null;//空白方格
private Image image;//河流背景图片
public frogPanel(){//构造方法
super();
setLayout(null);//设置空布局
try{
image=ImageIO.read(new File("pic\\game.jpg"));
}catch(IOException e){
e.printStackTrace();
}
setOpaque(false);//设置为透明
//init (6);
}
public void init(int n){
if(cells!=null)
this.removeAll();
cells=new frogCell[n+1];//创建动物方块数组
int i=0;
Icon icon=null;//动物图标
frogCell cell=null;
for(i=0;i
if(i
icon=new ImageIcon("pic\\frog_R.png");//获取动物图标
cell=new frogCell(icon,false);//实例化动物方块对象
//cell.setLeft(false);
}
if(i==(int)cells.length/2){
icon=new ImageIcon("pic\\blank.jpg");
cell=new frogCell(icon,false);//实例化动物方块对象
cell.setBackground(Color.BLACK);
cell.setVisible(true);
cell.setBlank(true);
}
if(i>cells.length/2){//右边青蛙
icon =new ImageIcon("pic\\frog_L.png");
cell=new frogCell(icon,true);
//cell.setLeft(true);
}
cell.setLocation(i*frogCell.IMAGEWIDTH,100);//设置坐标
cells[i]=cell;//将动物方块存储到动物方块数组中
}
for(i=0;i
this.add(cells[i]);//向面板中添加所有动物方块
cells[i].addMouseListener(this);
}
}
public boolean isOver(){
for(int i=0;i
if(i
if(!cells[i].isLeft()) return false;
}
if(i==(int)(cells.length/2)){
if(!cells[i].isBlank()) return false;
}
if(i>cells.length/2){
if(cells[i].isLeft()) return false;
}
}
return true;
}
public void modeClicked(MouseEvent e){
int i;
for(i=0;i
if(cells[i]==e.getSource())
break;
}
if(cells[i].isBlank()) return;
if(cells[i].isLeft()&&cells[i-1].isBlank()){
Icon icon =null;//动物图标
icon=cells[i].getIcon();
cells[i].setIcon(cells[i-1].getIcon());
cells[i-1].setIcon(icon);
cells[i].setBlank(true);//标记此动物方块为空白图标
cells[i-1].setBlank(false);//标记此动物方块为非空白图标
cells[i-1].setLeft(true);//标记此动物方块为向左图标
if(isOver())
JOptionPane.showMessageDialog(null,"成功","提示",JOptionPane.OK_OPTION);
}else if(cells[i].isLeft()&&!cells[i-1].isBlank()&&cells[i-2].isBlank()){
Icon icon =null;
icon=cells[i].getIcon();
cells[i].setIcon(cells[i-2].getIcon());
cells[i-2].setIcon(icon);
cells[i].setBlank(true);//标记此方块为空白图标
cells[i-2].setBlank(false);//标记此方块为非空白图标
cells[i-2].setLeft(true);//标记此方块为向左图标
if(isOver())
JOptionPane.showMessageDialog(null,"成功","提示",JOptionPane.OK_OPTION);
}else//向右的青蛙方块
if(!cells[i].isLeft()&&cells[i+1].isBlank()){
Icon icon=null;
icon=cells[i].getIcon();
cells[i].setIcon(cells[i+1].getIcon());
cells[i+1].setIcon(icon);
cells[i].setBlank(true);//标记此动物方块为空白图标
cells[i+1].setBlank(false);//标记此动物方块为非空白图标
cells[i+1].setLeft(false);//标记此动物方块为向右图标
if(isOver())
JOptionPane.showMessageDialog(null,"成功","提示",JOptionPane.OK_OPTION);
}else
if(!cells[i].isLeft()&&!cells[i+1].isBlank()&&cells[i+2].isBlank()){
Icon icon=null;
icon=cells[i].getIcon();
cells[i].setIcon(cells[i+2].getIcon());
cells[i+2].setIcon(icon);
cells[i].setBlank(true);//标记此动物方块为空白图标
cells[i+2].setBlank(false);//标记此动物方块为非空白图标
cells[i+2].setLeft(false);//标记此动物方块为向右图标
if(isOver())
JOptionPane.showMessageDialog(null,"成功","提示",JOptionPane.OK_OPTION);
}
}
}