import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class match extends Applet implements Runnable{
Image m0,m1,m2,mp;
int bd[] = {1,1,1,1,1,1,1,1,1,1};
int px,rx,cx,cm;
int mx,my;
int ss,se,sm;
int pfg,rfg;
Button rep;
Thread th = null;
Image os;
Graphics og;
public void init(){
m0 = getImage(getDocumentBase(),"");
m1 = getImage(getDocumentBase(),"Picture/match.gif");
m2 = getImage(getDocumentBase(),"Picture/match2.gif");
setBackground(Color.white);
os = createImage(600,170);
og = os.getGraphics();
setLayout(new BorderLayout());
Panel pan = new Panel();
pan.setLayout(new FlowLayout());
pan.add(rep = new Button(" replay "));
add("South",pan);
rep.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
for(int i = 0;i < 10;i ++){
bd[i] = 1;
}
repaint();
}
});
addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e){
if((e.getX() > 0) && (e.getX() < 600) && (e.getY() > 0) && (e.getY() < 150)){
px = (e.getX() - 50) / 50;
cx = px;
cm = bd[px];
if(bd[px] == 1){
mp = m1;
mx = e.getX() - 25;
my = e.getY() - 75;
bd[px] = 0;
pfg = 1;
}
repaint();
}
}
public void mouseReleased(MouseEvent e){
if((e.getX() > 0) && (e.getX() < 600) && (e.getY() > 0) && (e.getY() < 150)){
rx = (e.getX() - 50) / 50;
if(bd[rx] == 1){
if(px < rx){
ss = px + 1;
se = rx - 1;
}else{
ss = rx + 1;
se = px - 1;
}
if(ss <= se){
sm = 0;
for(int k = ss;k <= se;k ++){
sm = sm + bd[k];
}
}else{
sm = 0;
}
if((sm == 2) && (pfg == 1)){
rfg = 1;
}
}
}
if(rfg == 1){
bd[rx] = 2;
}else{
bd[cx] = cm;
}
pfg = 0;
rfg = 0;
mp = m0;
repaint();
}
}
);
addMouseMotionListener(
new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
mx = e.getX() - 25;
my = e.getY() - 75;
repaint();
}
}
);
}
public void paint(Graphics g){
og.setColor(Color.white);
og.fillRect(0,0,600,170);
for(int k = 0;k < 10;k ++){
switch(bd[k]){
case 0 : og.drawImage(m0,50 * k + 50,0,this);break;
case 1 : og.drawImage(m1,50 * k + 50,0,this);break;
case 2 : og.drawImage(m2,50 * k + 50,0,this);break;
}
}
og.drawImage(mp,mx,my,this);
g.drawImage(os,0,0,this);
}
public void stop(){
th = null;
}
public void run(){
while(th != null){
try{
Thread.sleep(100);
}
catch (InterruptedException e){
}
repaint();
}
}
public void update( Graphics g ){
paint( g ) ;
}
}
