개발자를 꿈꾸는 여정

<console mini project - 01> : 가위바위보 본문

2. Back Developer/2_2. Java Revise

<console mini project - 01> : 가위바위보

아카라타 2021. 12. 1. 09:47

1. 가위바위보

 

연습 (안보고 코딩가능할때까지 > 시간재기)

 

1. STEP1 >> 되도록 참고 줄이기

2. STEP2 >> 안보고 칠때까지

3. STEP3 >> 시간 속도 줄이기

 

 


정답

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package java1;
 
import java.util.Random;
import java.util.Scanner;
 
public class 가위바위보 { // c s
 
    // 가위바위보
    // 1. 사용자로부터 가위[0]바위[1]보[2] 중 하나를 입력 받기
    // 2. 컴퓨터는 랜덤으로 가위바위보 [0~2] 중 하나 선택
    // 3. 승리한 플레이어 호출
    // + : 만약에 종료[3]를 입력하면 게임종료
    // + : 게임종료시 게임수 와 최종승리[ 가장 많이 이긴 플레이어 호출 ]
 
    public static void main(String[] args) {
 
        Scanner scanner = new Scanner(System.in);
 
        // 1. 필요 변수 개수 // 2. 키보드로 입력 // 3. 난수 생성 // 4. 제어[승리자 판단]
        int 플레이어;
        int 컴퓨터;
        int 게임수 = 0// 게임수를 저장하는 변수 [ while문의 반복횟수 ]
        int 플레이어승리수 = 0;
        int 컴퓨터승리수 = 0;
 
        while (true) {
 
            // 1.사용자로부터 입력받기
            System.out.println(" --------------[[ 가위바위보 게임 ]] ----------- ");
            System.out.print(" >>>>>>>  가위[0] 바위[1] 보[2] 종료[3] 중 선택 : ");
            플레이어 = scanner.nextInt();
 
            // 4. 3번 입력시 게임 종료
            if (플레이어 == 3) {
                System.out.println(" >>>>>>> [게임종료] : 게임횟수 :  " + 게임수);
                if (플레이어승리수 > 컴퓨터승리수) {
                    System.out.println(" >>>>>>> [ 최종승리자 ] : 플레이어 " + 플레이어승리수);
                } else if (플레이어승리수 < 컴퓨터승리수) {
                    System.out.println(" >>>>>>> [ 최종승리자 ] : 컴퓨터 " + 컴퓨터승리수);
                } else {
                    System.out.println(" >>>>>>> [ 최종승리자 ] : 무승부 ");
                }
                break// 가장 가까운 반목문 탈출
 
            }
            // 5. 0~3 외 숫자 입력시
            if (플레이어 < 0 || 플레이어 > 3) {
                System.out.println("  >>>>>>> [알수없는 번호 입니다 : 다시 입력 ] ");
                continue// 가장 가까운 반목문 이동
            }
 
            // 2. 컴퓨터로부터 난수 생성
            Random random = new Random(); // 난수 객체
            컴퓨터 = random.nextInt(3); // 0~2 사이 난수
            System.out.println(" >>>>>>> 컴퓨터가 낸 수 : " + 컴퓨터);
 
            // 3. 플레이어 승리자 판단 [ 플레이어=가위 && 컴퓨터==보 이거나 바위,가위 이거나 보,바위 ]
            if ((플레이어 == 0 && 컴퓨터 == 2|| (플레이어 == 1 && 컴퓨터 == 0|| (플레이어 == 2 && 컴퓨터 == 1)) {
                System.out.println(" >>>>>>> 플레이어 승리");
                플레이어승리수++// 승리수 증가
            }
            // 무승부 판단
            else if ((플레이어 == 0 && 컴퓨터 == 0|| (플레이어 == 1 && 컴퓨터 == 1|| (플레이어 == 2 && 컴퓨터 == 2)) {
                System.out.println(" >>>>>>>> 무승부 ");
            } else { // 컴퓨터 승리
                System.out.println(" >>>>>>>> 컴퓨터 승리");
                컴퓨터승리수++// 승리수 증가
            }
 
            게임수++// 게임수 증가
 
        } // while end
    } // main end
// c e
cs

<풀이>

 

1. 필드(객체) 생성

2. 무한반복문

while (true) {

 

}

 

 

'2. Back Developer > 2_2. Java Revise' 카테고리의 다른 글

<console mini project - 02> : ATM  (0) 2021.11.30
<console mini project - checklist>  (0) 2021.11.30