Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MAP
- io
- IBatis CRUD
- 변수선언
- 연산자
- 동적 버튼 생성
- 동적 버튼 onclick
- 고급자바
- ListSort
- 변수
- comparator
- 동적 데이터
- 조건문
- I/O
- 변수초기화
- enum
- 객체
- Comparable
- 쓰레드
- IBatis 게시판
- oclick 동적
- Thread
- 자바
- 기초
- 계산기
- 객체지향
- 동적 문자열
- Java
- 코딩
- iBatis
Archives
- Today
- Total
Jun's Blog
[Java] Thread를 이용해 컴퓨터와 가위 바위 보 게임하기 본문
/*
컴퓨터와 가위 바위 보를 진행하는 프로그램을 작성하시오.
컴퓨터의 가위 바위 보는 난수를 이용하여 구하고
사용자의 가위 바위 보는 showInputDialog()메서드를 이용하여 입력받는다.
입력시간은 5초로 제한하고 카운트 다운을 진행한다.
5초안에 입력이 없으면 게임을 진것으로 처리한다.
5초안에 입력이 완료되면 승패를 출력한다.
결과예시)
=== 결 과 ===
컴퓨터 : 가위
당 신 : 바위
결 과 : 당신이 이겼습니다.
*/
import javax.swing.JOptionPane;
public class T07_ThreadGame {
public static boolean inputCheck = false;
public static void main(String[] args) {
GameTimer gt = new GameTimer();
// 난수를 이용하여 컴퓨터의 가위 바위 보를 정한다.
String[] data = {"가위", "바위", "보"};
int index = (int)(Math.random()*3); // 0~2사이의 난수 만들기
String com = data[index];
// 사용자로 부터 가위, 바위, 보 입력 받기
String man = null; // 사용자의 가위바위보가 저장될 변수
// 카운트 다운 쓰레드 실행
gt.start();
do{
man = JOptionPane.showInputDialog("가위, 바위, 보를 입력하세요");
}while(!man.equals("가위") && !man.equals("바위") && !man.equals("보"));
inputCheck = true; // 입력이 완료됨을 알려주는 변수값을 변경한다.
// 결과 판정하기
String result = "";
if( man.equals(com) ){
result = "비겼습니다.";
}else if( (man.equals("가위") && com.equals("보"))
|| (man.equals("바위") && com.equals("가위"))
|| (man.equals("보") && com.equals("바위")) ){
result = "당신이 이겼습니다.";
}else{
result = "당신이 졌습니다.";
}
// 결과 출력
System.out.println("=== 결 과 ===");
System.out.println("컴퓨터 : " + com);
System.out.println("당 신 : " + man);
System.out.println("결 과 : " + result);
}
}
/**
* 게임 타이머
*/
class GameTimer extends Thread{
@Override
public void run() {
for(int i=5; i>=1; i--){
if(T07_ThreadGame.inputCheck==true){
return;
}
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("시간이 초과되어 당신이 졌습니다.");
System.exit(0);
}
}
'High Java > Thread' 카테고리의 다른 글
[Java] Thread에서 데이터를 공통으로 사용하는 방법 예제 (0) | 2020.10.22 |
---|---|
[Java] Thread 알파벳 대문자 출력하고 끝낸 순서대로 결과 나타내기 (0) | 2020.10.22 |
[Java] 멀티 쓰레드를 활용한 카운트다운 처리 (0) | 2020.10.22 |
[Java] 단일 쓰레드에서의 사용자 입력 처리하기 (0) | 2020.10.22 |
[Java] Single Thread & Multi Thread (0) | 2020.10.22 |
Comments