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 ) ; } }