본문 바로가기
자바

자바 소스코드: 랜덤함수를 이용한 가위바위보 게임

by 드린 2016. 10. 29.

목차

    반응형
    package javaapplication55;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    
    class Ex9 extends JFrame{
        ImageIcon[] gbb = {new ImageIcon("gawi.jpg"), new ImageIcon("bawi.jpg"), new ImageIcon("bo.jpg")};
        JButton[] btn = new JButton[gbb.length];
        JLabel me= new JLabel("me");
        JLabel com= new JLabel("com");
        JLabel win= new JLabel("win");
        
        Ex9(){
            this.setTitle("가위 바위 보 게임");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            JPanel northPanel = new JPanel();
            northPanel.setBackground(Color.GRAY);
            
            JPanel centerPanel = new JPanel();
            centerPanel.setBackground(Color.YELLOW);
            win.setForeground(Color.red);
            centerPanel.add(me);
            centerPanel.add(com);
            centerPanel.add(win);
            
            for(int i=0; i<gbb.length; i++){
                btn[i]=new JButton(gbb[i]);
                btn[i].addActionListener(new MyActionListener());
                northPanel.add(btn[i]);
            }
            
            this.add(northPanel, BorderLayout.NORTH);
            this.add(centerPanel, BorderLayout.CENTER);
            this.setSize(400,300);
            this.setVisible(true);
        }
        
        public void draw(Icon m, Icon c, String w){
            me.setIcon(m);
            com.setIcon(c);
            win.setText(w);
        }
        
        class MyActionListener implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent e) {
                String w;
                JButton b =(JButton)e.getSource();
                int n=(int)(Math.random()*3);
                if(btn[0]==b){
                    if(n==0){
                        w="Same!!!";
                        draw(gbb[0],gbb[n],w);
                    }
                    else if(n==1){
                        w="COMPUTER!!!";
                        draw(gbb[0],gbb[n],w);
                    }
                    else if(n==2){
                        w="ME!!!";
                        draw(gbb[0],gbb[n],w);
                    }
                }
                else if(btn[1]==b){
                    if(n==0){
                        w="ME!!!";
                        draw(gbb[1],gbb[n],w);
                    }
                    else if(n==1){
                        w="Same!!!";
                        draw(gbb[1],gbb[n],w);
                    }
                    else if(n==2){
                        w="COMPUTER!!!";
                        draw(gbb[1],gbb[n],w);
                    }
                }
                else if(btn[2]==b){
                    if(n==0){
                        w="COMPUTER!!!";
                        draw(gbb[2],gbb[n],w);
                    }
                    else if(n==1){
                        w="ME!!!";
                        draw(gbb[2],gbb[n],w);
                    }
                    else if(n==2){
                        w="Same!!!";
                        draw(gbb[2],gbb[n],w);
                    }
                    else
                        return;
                }
            }
        }
    }
    public class JavaApplication55 {
        public static void main(String[] args) {
            new Ex9();
        }
    }
    
    

    <결과>

    2016/10/29 - [자바] - 자바 소스코드: 텍스트필드의 문자열을 제한하기

    2016/10/29 - [자바] - 자바 소스코드: 슬라이더 수치로 문자열 크기 조정

    2016/10/29 - [자바] - 자바 소스코드: 슬라이더 수치 문자열로 표현

    #자바 #자바 소스코드 #명품자바 프로그래밍 실습문제 11장 9번 #자바 예제 #가위 #바위 #보 #랜덤함수를 이용한 가위바위보 게임 #액션 리스너 #이미지 아이콘 #버튼 #Math.random()

    반응형