본문 바로가기

JAVA/개발

[JAVA] 가위바위보

사용자는 버튼으로 선택하고 컴퓨터는 랜덤으로 선택하여 승패를 정하는 누구나 아는 가위바위보 프로그램이다. program 메소드에 switch를 하나 써 줬으면 좀 더 깔끔했을 것 같다.

 

 

코드

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class nine extends JFrame{
	ImageIcon rock,scissors,paper;
	JButton rockBt,scissorsBt,paperBt;
	JPanel jp1,jp2;
	JLabel jl1,jl2,jl3;
	public nine() {
		setTitle("가위 바위 보 게임");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new BorderLayout());
		
		rock=new ImageIcon("images/Rock.png");
		scissors=new ImageIcon("images/Scissors.png");
		paper=new ImageIcon("images/Paper.png");
		
		rockBt=new JButton(rock);
		scissorsBt=new JButton(scissors);
		paperBt=new JButton(paper);
		
		rockBt.setPreferredSize(new Dimension(250,350));		
		scissorsBt.setPreferredSize(new Dimension(250,350));		
		paperBt.setPreferredSize(new Dimension(250,350));		
		
		rockBt.addMouseListener(new MyMouseListener());
		scissorsBt.addMouseListener(new MyMouseListener());
		paperBt.addMouseListener(new MyMouseListener());
		
		jp1=new JPanel();
		jp1.setLayout(new FlowLayout());
		jp1.setBackground(Color.DARK_GRAY);
		jp2=new JPanel();
		jp2.setLayout(new FlowLayout());
		jp2.setBackground(Color.yellow);
		
		jp1.add(scissorsBt);
		jp1.add(rockBt);
		jp1.add(paperBt);
		
		jl1=new JLabel();
		jl2=new JLabel();
		jl3=new JLabel();
		jl3.setForeground(Color.red);
		
		jp2.add(jl1);
		jp2.add(jl2);
		jp2.add(jl3);
		c.add(jp1,BorderLayout.NORTH);
		c.add(jp2,BorderLayout.CENTER);
	
		setSize(800,800);
		setVisible(true);
	}
	public void program(int i) {//0=바위 1=가위 2=보
		int com=(int)(Math.random()*3);
		if(i==0) {jl1.setIcon(rock);jl1.setText("me");
		if(com==0) {jl2.setIcon(rock);jl2.setText("com ");jl3.setText("Same !!!");}
		else if(com==1) {jl2.setIcon(scissors);jl2.setText("com ");jl3.setText("Me !!!");}
		else if(com==2) {jl2.setIcon(paper);jl2.setText("com ");jl3.setText("Computer !!!");}
		}
		if(i==1) {jl1.setIcon(scissors);jl1.setText("me");
		if(com==0) {jl2.setIcon(rock);jl2.setText("com ");jl3.setText("Computer !!!");}
		else if(com==1) {jl2.setIcon(scissors);jl2.setText("com ");jl3.setText("Same !!!");}
		else if(com==2) {jl2.setIcon(paper);jl2.setText("com ");jl3.setText("Me !!!");}
		}
		if(i==2) {jl1.setIcon(paper);jl1.setText("me");
		if(com==0) {jl2.setIcon(rock);jl2.setText("com ");jl3.setText("Me !!!");}
		else if(com==1) {jl2.setIcon(scissors);jl2.setText("com ");jl3.setText("Computer !!!");}
		else if(com==2) {jl2.setIcon(paper);jl2.setText("com ");jl3.setText("Same !!!");}
		}
	}
	class MyMouseListener extends MouseAdapter{
		public void mousePressed(MouseEvent e) {
			if(e.getSource().equals(rockBt)) {program(0);}
			if(e.getSource().equals(scissorsBt)) {program(1);}
			if(e.getSource().equals(paperBt)) {program(2);}
		}
	}
	public static void main(String[]args) {
		new nine();
	}
}

'JAVA > 개발' 카테고리의 다른 글

[JAVA] 스네이크 게임  (0) 2022.10.07
[JAVA] 파이 차트  (0) 2022.10.04
[JAVA] 간단 순발력 테스트  (0) 2022.08.12
[JAVA] 이미지 갤러리  (0) 2022.08.10
[JAVA] 간단 에임 부스터  (0) 2022.08.10