지금 팩맨 목숨이 한개인데,            목숨 세개로 주고 싶은데,

 enemy에 닿으면 플레이중인 팩맨 죽고  목숨 세개중에 하나 까여서 두개가 되고

새로운 팩맨으로 플레이 할 수 있게 하고 싶은데 어디다 뭘 추가해야 될까요?

 

 

 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;

public class pacman {
 public static void main(String[] args) {
  final JFrame frame = new JFrame();
  final ImageIcon successIcon = new ImageIcon("successIcon.png");
  final ImageIcon smallDot = new ImageIcon("smallDot.png");
  final ImageIcon bigDot = new ImageIcon("bigDot.png");
  final ImageIcon wall = new ImageIcon("wall.png");
  final ImageIcon enemy = new ImageIcon("enemy.png");
  final ImageIcon pacman = new ImageIcon("pacman.png");
  final ImageIcon empty = new ImageIcon("empty.png");
  final JButton button = new JButton(successIcon);
  final CardLayout card = new CardLayout();
  final JDialog dialog = new JDialog();

  random = new Random();

  dialog.setSize(690,650);
  dialog.setVisible(false);

  pacmanH=12;  pacmanW=7;  enemyH=7;  enemyW=7;  numOfDot=79;  start=2;  temp=empty;

  final JLabel[][] f = new JLabel[14][14];

  for (int i=0; i<14; i++) {
   for(int j=0; j<14; j++) {
    f[i][j] = new JLabel();
   }
  }

  class Blistener implements ActionListener {
   public void actionPerformed(ActionEvent event) {
    System.exit(0);
   }
  }


  class TListener implements ActionListener {   //timerŬ���� ActionListener
   int life;
   public void actionPerformed(ActionEvent event)
   {
    if(start<=0) where = 1+random.nextInt(4);
    else { where = 1; start--; }
     switch(where) {
      case 1:
       if(!(f[enemyH-1][enemyW].getIcon()).equals(wall)) {
        temp1=f[enemyH-1][enemyW].getIcon();
        f[enemyH-1][enemyW].setIcon(enemy);
        f[enemyH][enemyW].setIcon(temp);
        temp=temp1;
        enemyH--;
       }
       break;
      case 2:
       if(!(f[enemyH+1][enemyW].getIcon()).equals(wall)) {
        temp2=f[enemyH+1][enemyW].getIcon();
        f[enemyH+1][enemyW].setIcon(enemy);
        f[enemyH][enemyW].setIcon(temp);
        temp=temp2;
        enemyH++;
       }
       break;
      case 3:
       if(!(f[enemyH][enemyW-1].getIcon()).equals(wall)) {
        temp3=f[enemyH][enemyW-1].getIcon();
        f[enemyH][enemyW-1].setIcon(enemy);
        f[enemyH][enemyW].setIcon(temp);
        temp=temp3;
        enemyW--;
       }
       break;
      case 4:
       if(!(f[enemyH][enemyW+1].getIcon()).equals(wall)) {
        temp4=f[enemyH][enemyW+1].getIcon();
        f[enemyH][enemyW+1].setIcon(enemy);
        f[enemyH][enemyW].setIcon(temp);
        temp=temp4;
        enemyW++;
       }
       break;
     }
     if(enemyH==pacmanH && enemyW==pacmanW) {
      f[enemyH][enemyW].setIcon(enemy);
      dialog.add(button);
      dialog.setVisible(true);
     }

    if(enemyH==5 && enemyW==7) { f[6][7].setIcon(wall); }
    System.out.println(where);
   }
  }
  class KListener extends KeyAdapter{  //Ű�����Է¿� ���� KeyListener
   public void keyPressed(KeyEvent e) {
    if(numOfDot<=0) {
     dialog.add(button);
     dialog.setVisible(true);
    }
    int key = e.getKeyCode();
    switch(key) {
     case KeyEvent.VK_UP:
      if((f[pacmanH-1][pacmanW].getIcon()).equals(smallDot) || (f[pacmanH-1][pacmanW].getIcon()).equals(empty)) {
       if((f[pacmanH-1][pacmanW].getIcon()).equals(smallDot) && (f[pacmanH][pacmanW].getIcon()).equals(pacman)) numOfDot--;
       f[pacmanH-1][pacmanW].setIcon(pacman);
       f[pacmanH][pacmanW].setIcon(empty);
       pacmanH--;
      }
      if((f[pacmanH-1][pacmanW].getIcon()).equals(enemy)) {
       f[enemyH][enemyW].setIcon(enemy);
       dialog.add(button);
       dialog.setVisible(true);
      }
      break;
     case KeyEvent.VK_DOWN:
      if((f[pacmanH+1][pacmanW].getIcon()).equals(smallDot) || (f[pacmanH+1][pacmanW].getIcon()).equals(empty)) {
       if((f[pacmanH+1][pacmanW].getIcon()).equals(smallDot) && (f[pacmanH][pacmanW].getIcon()).equals(pacman)) numOfDot--;
       f[pacmanH+1][pacmanW].setIcon(pacman);
       f[pacmanH][pacmanW].setIcon(empty);
       pacmanH++;
      }
      if((f[pacmanH+1][pacmanW].getIcon()).equals(enemy)){
       f[enemyH][enemyW].setIcon(enemy);
       dialog.add(button);
       dialog.setVisible(true);
      }
      break;
     case KeyEvent.VK_LEFT:
      if((f[pacmanH][pacmanW-1].getIcon()).equals(smallDot) || (f[pacmanH][pacmanW-1].getIcon()).equals(empty)) {
       if((f[pacmanH][pacmanW-1].getIcon()).equals(smallDot) && (f[pacmanH][pacmanW].getIcon()).equals(pacman)) numOfDot--;
       f[pacmanH][pacmanW-1].setIcon(pacman);
       f[pacmanH][pacmanW].setIcon(empty);
       pacmanW--;
      }
      if((f[pacmanH][pacmanW-1].getIcon()).equals(enemy)){
       f[enemyH][enemyW].setIcon(enemy);
       dialog.add(button);
       dialog.setVisible(true);
      }
      break;
     case KeyEvent.VK_RIGHT:
      if((f[pacmanH][pacmanW+1].getIcon()).equals(smallDot) || (f[pacmanH][pacmanW+1].getIcon()).equals(empty)) {
       if((f[pacmanH][pacmanW+1].getIcon()).equals(smallDot) && (f[pacmanH][pacmanW].getIcon()).equals(pacman)) numOfDot--;
       f[pacmanH][pacmanW+1].setIcon(pacman);
       f[pacmanH][pacmanW].setIcon(empty);
       pacmanW++;
      }
      if((f[pacmanH][pacmanW+1].getIcon()).equals(enemy)) {
       f[enemyH][enemyW].setIcon(enemy);
       dialog.add(button);
       dialog.setVisible(true);
      }
      break;
    }
    System.out.println(numOfDot);
   }
  }
  KListener listener = new KListener();
  TListener tListener = new TListener();

  button.addActionListener(new Blistener());

  Timer t = new Timer(500, tListener);
  t.start();

  JPanel panel = new JPanel();
  panel.setLayout(new GridLayout(14,14));
  frame.requestFocus();
  frame.addKeyListener(new KListener());


  for(int i=0; i<14; i++) {
   for(int j=0; j<14; j++) {
    f[i][j].setIcon(wall);
    f[i][j].addKeyListener(listener);
    panel.add(f[i][j]);
   }
  }
  f[1][1].setIcon(smallDot); f[2][1].setIcon(smallDot); f[3][1].setIcon(smallDot); f[4][1].setIcon(smallDot); f[5][1].setIcon(smallDot);
  f[5][2].setIcon(smallDot); f[5][3].setIcon(smallDot); f[1][3].setIcon(smallDot); f[2][3].setIcon(smallDot); f[3][3].setIcon(smallDot);
  f[4][3].setIcon(smallDot); f[1][4].setIcon(smallDot); f[1][5].setIcon(smallDot); f[1][6].setIcon(smallDot); f[1][7].setIcon(smallDot);
  f[1][8].setIcon(smallDot); f[1][9].setIcon(smallDot); f[1][10].setIcon(smallDot); f[1][11].setIcon(smallDot); f[1][12].setIcon(smallDot);
  f[2][9].setIcon(smallDot); f[2][12].setIcon(smallDot); f[3][12].setIcon(smallDot); f[4][12].setIcon(smallDot); f[5][12].setIcon(smallDot);
  f[3][4].setIcon(smallDot); f[3][5].setIcon(smallDot); f[3][10].setIcon(smallDot); f[3][11].setIcon(smallDot);
  f[4][5].setIcon(smallDot); f[4][6].setIcon(smallDot); f[4][7].setIcon(smallDot); f[4][8].setIcon(smallDot); f[4][9].setIcon(smallDot);
  f[4][10].setIcon(smallDot); f[2][7].setIcon(smallDot); f[3][7].setIcon(smallDot); f[4][10].setIcon(smallDot); f[4][11].setIcon(smallDot);
  f[5][11].setIcon(smallDot); f[6][11].setIcon(smallDot); f[7][11].setIcon(smallDot); f[7][12].setIcon(smallDot); f[8][12].setIcon(smallDot);
  f[9][12].setIcon(smallDot); f[10][12].setIcon(smallDot);f[11][12].setIcon(smallDot); f[5][7].setIcon(empty); f[6][2].setIcon(smallDot);
  f[7][1].setIcon(smallDot); f[9][11].setIcon(smallDot); f[11][1].setIcon(smallDot); f[11][3].setIcon(smallDot); f[11][11].setIcon(smallDot);
  f[7][2].setIcon(smallDot); f[7][3].setIcon(smallDot); f[8][1].setIcon(smallDot); f[9][1].setIcon(smallDot); f[9][2].setIcon(smallDot);
  f[9][3].setIcon(smallDot); f[9][4].setIcon(smallDot); f[9][5].setIcon(smallDot); f[9][6].setIcon(smallDot); f[12][1].setIcon(smallDot);
  f[12][2].setIcon(smallDot); f[12][3].setIcon(smallDot); f[12][4].setIcon(smallDot); f[12][5].setIcon(smallDot); f[12][9].setIcon(smallDot);
  f[12][10].setIcon(smallDot);f[12][11].setIcon(smallDot); f[10][5].setIcon(smallDot); f[11][5].setIcon(smallDot); f[10][6].setIcon(smallDot);
  f[10][7].setIcon(smallDot); f[10][8].setIcon(smallDot); f[10][9].setIcon(smallDot); f[11][7].setIcon(smallDot); f[12][7].setIcon(pacman);
  f[9][8].setIcon(smallDot); f[9][9].setIcon(smallDot); f[11][9].setIcon(smallDot); f[6][5].setIcon(empty);f[6][6].setIcon(empty);
  f[6][7].setIcon(empty); f[6][8].setIcon(empty);f[6][9].setIcon(empty); f[7][5].setIcon(empty);f[7][6].setIcon(empty);
  f[7][7].setIcon(enemy); f[7][8].setIcon(empty);f[7][9].setIcon(empty);

  frame.add(panel);
  frame.setTitle("�ѸǤ�");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);
  frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
 }

 private static Random random;
 private static int pacmanH, pacmanW, enemyH, enemyW, numOfDot, where, start;
 private static int fieldMin=0, fieldMax=13;
 private static Icon temp1, temp2, temp3, temp4, temp;

 private static final int FRAME_WIDTH = 690;
 private static final int FRAME_HEIGHT = 650;
}