평행코드

Java) 가위바위보게임 만들기! 본문

Java

Java) 가위바위보게임 만들기!

나의 오류는 누군가 겪었던 오류 2023. 9. 3. 10:28

가위바위보게임

 

1. 가위바위보게임
 설명 
- 사용자에게 가위, 바위, 보 중 한개를 입력하도록하고(입력방식은 숫자)
- 컴퓨터가 랜덤값으로 세개중 하나의 데이터를 대입
- 컴퓨터의 값과 사용자의 값을 비교하여 다음의 결과출력
  같으면 비겼습니다. 출력 후 다시 사용자와 컴퓨터가 선택할 수 있도록 로직구성
  컴퓨터가 사용자에게 이기면 컴퓨터가 이겼습니다. 출력
  사용자가 컴퓨터에게 이기면 사용자가 있겼습니다. 출력   
- 승자가 나왔으면 다시 하겠습니다 출력 
  다시하면 위에 로직 다시 실행
  종료하면 프로그램 종료
- 추가 : 만일 위내용을 쉽게 처리 했으면 프로그램 종료시 지금까지 전적을 출력
        컴퓨터 승 00번, 사용자 승 00번
값을 입력받을 Scanner함수와 Random함수를 사용하기위해 선언해줍니다.
승리 시 얼마나 이겼는지 카운트를 해줄 변수를 선언해 줍니다.
Scanner sc = new Scanner(System.in);
Random r = new Random();

// 승리 수 카운트해줄 변수 선언
    int numWin = 0;
    int comWin = 0;
while 무한루프문을 사용해 코딩을 해줍니다.
// while 무한루프문
    while (true) {
        System.out.println("===== 가위바위보게임!! =====");
        System.out.println("1 : 가위\n2 : 바위\n3 : 보");
        System.out.print("숫자를 입력하세요 : ");
        int num = sc.nextInt();
        int com = r.nextInt(3)+1;

        // 0을 입력하면 지금까지의 전적을 출력하고 종료
        if(num == 0) {
            System.out.println("프로그램을 종료하겠습니다.");
            System.out.println(FONT_CYAN +"사용자 승 " + numWin +"번,"+ " 컴퓨터 승 " + comWin + "번" + RESET);
            break;
        }

        // 0~4사이의값에서 벗어나면 아래 문구 출력
        if(num>=4 || num<0) {
            System.out.println("0~3 사이의 숫자를 입력하세요");
            System.out.println();
            continue;
        }

        // 가위바위보 경우의 수 코딩
        if(num==com) {
            System.out.println("비겼습니다 -0-");
        } else if (num==1 && com==2) {
            System.out.println("졌습니다 T^T");
            comWin++;
        } else if (num==1 && com==3) {
            System.out.println("이겼습니다 ㅇ0ㅇ");
            numWin++;
        } else if (num==2 && com==1) {
            System.out.println("이겼습니다 ㅇ0ㅇ");
            numWin++;
        } else if (num==2 && com==3) {
            System.out.println("졌습니다 T^T");
            comWin++;
        } else if (num==3 && com==1) {
            System.out.println("졌습니다 T^T");
            comWin++;
        } else if (num==3 && com==2) {
            System.out.println("이겼습니다 ㅇ0ㅇ");
            numWin++;
        }
가위바위보 결과로 무엇을 냈는지 1, 2, 3 이렇게 숫자로 나온다면 직관적이지 않기때문에
결과를 String으로 (가위, 바위, 보) 표현해 줍니다.
// 결과가 숫자로 나온다면 직관적이지가 않으므로 결과를 String로 나타내줌
// 가위 바위 보 String을 저장해줄 변수 선언
    String numStore = "";
    String comStore = "";

    // 경우의 따라 가위 바위 보를 변수에 저장해줌
    if(num==1) {
        numStore = "가위";
    } else if (num==2) {
        numStore = "바위";
    } else if (num==3) {
        numStore = "보";
    }
    if(com==1) {
        comStore = "가위";
    } else if (com==2) {
        comStore = "바위";
    } else if (com==3) {
        comStore = "보";
    }

    //콘솔 색상추가
    System.out.println();
    System.out.println(FONT_CYAN +"유저 : " + numStore + "\n"
            + "컴퓨터 : " + comStore + RESET +"\n");
    System.out.println("다시 하겠습니다");
    System.out.println("프로그램 종료는 0 입력\n");
코딩결과