[Java] 가위바위보
[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();
}
}