Java

[Java] 가위바위보

tube_doit 2012. 11. 3. 22:17

[Java] 가위바위보

 

 

import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.*;
//외부클래스
public class GameTest extends JFrame{
//준비
 ImageIcon gbdimage[] = {new ImageIcon("이미지/가위.jpg"),
   new ImageIcon("이미지/바위.jpg"),new ImageIcon("이미지/보.jpg")};
 static String same = "비겼다";
 static String me_win = "패배..축하드려요";
 static String com_win = "승!분발하세요";
//외부클래스 생성자 구현
 public GameTest(){
 setTitle("가위,바위,보 게임");
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 add(menuPanel, BorderLayout.NORTH);
    add(gamePanel, BorderLayout.CENTER);
    setBounds(500, 300, 400, 300);
    setVisible(true);
    }
 //내부클래스 객체 생성
 MenePanel menuPanel = new MenePanel();
    GamePanel gamePanel = new GamePanel();
   
 //내부클래스.1
 class MenePanel extends JPanel implements ActionListener{
  JButton btn[] = new JButton[3];
  
  
  //내부클래스 생성자
  public MenePanel(){
  setBackground(Color.GRAY);
  for(int i=0;i<btn.length;i++){
   btn[i]= new JButton(gbdimage[i]);
   add(btn[i]);
   //이벤트 연결
   btn[i].addActionListener(this);
   
  }
 }
  @Override
  public void actionPerformed(ActionEvent e) {
   JButton nbtn = (JButton)e.getSource();
   
    Random rand = new Random();
      int comPart = rand.nextInt(3);
  String winner = null;
  //내가 이겼을 경우
  if(nbtn.getIcon() == gbdimage[0]&&comPart == 2||
    nbtn.getIcon() == gbdimage[1]&&comPart == 0||
    nbtn.getIcon() == gbdimage[2]&&comPart == 1)
   winner = me_win;
  else if(nbtn.getIcon() == gbdimage[0]&&comPart == 1||
    nbtn.getIcon() == gbdimage[1]&&comPart == 2||
    nbtn.getIcon() == gbdimage[2]&&comPart == 0)
   winner =com_win;
  else
   winner = same;
  //gamePanel의 사용자 메소드 호출
  gamePanel.draw(nbtn.getIcon(),gbdimage[comPart],winner);
  
  }
  
  
 }
 //내부클래스.2
 class GamePanel extends JPanel{

   JLabel me = new JLabel("VS");
   JLabel com = new JLabel("컴퓨터의");
   JLabel winner = new JLabel("게임");
   //내부클래스 생성자 구현
   public GamePanel(){
    setBackground(Color.white);
    add(me);
    add(com);
    add(winner);
    winner.setForeground(Color.RED);//승자에 빨강색으로 밑줄
    }
 //사용자 메소드 구현
   public void draw(Icon myImage,
     Icon computerImage,
     String w){
    me.setIcon(myImage);
    com.setIcon(computerImage);
    winner.setText(w);
   }
 
 }
 
 public static void main(String[] args){
 new GameTest();
}
}