C언어

C언어로 가위바위보 게임 만들기

;세미콜론; 2025. 4. 6. 03:28
반응형

1.사용자의 가위/바위/보 입력 받기

2.컴퓨터의 가위/비위/보는 랜덤으로 생성

3.서로 비교 후 승/패/무 판결

-> 사용자가 원할 때 까지 반복

4.승/패/무 전적 출력

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//유저의 선택을 출력하기 위함 함수 
void printChoice(int choice) {
    switch (choice) {
        case 1: printf("가위"); break;
        case 2: printf("바위"); break;
        case 3: printf("보"); break;
    }
}

int main() {
    int user, computer;
    int win = 0, lose = 0, draw = 0; //사용자의 승패 기록을 위함 

    //난수 초기화
    srand(time(NULL));

    while (1) {
        printf("\n가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: ");
        scanf("%d", &user);

        if (user == 0) {
            printf("\n게임 종료!\n");
            printf("당신의 전적: %d승 %d패 %d무\n", win, lose, draw);
            break;
        }

        if (user < 1 || user > 3) {
            printf("잘못된 입력입니다. 다시 입력해주세요.\n");
            continue;
        }

        //컴퓨터는 무작위 선택 (1~3)
        computer = rand() % 3 + 1;

        //선택 출력
        printf("당신: ");
        printChoice(user);
        printf("  vs  컴퓨터: ");
        printChoice(computer);
        printf("\n");

        //결과 판정
        if (user == computer) {
            printf("무승부입니다!\n");
            draw++;
        } else if ((user == 1 && computer == 3) || //가위>보 
                   (user == 2 && computer == 1) || //바위>가위 
                   (user == 3 && computer == 2)) { //보>바위 
            printf("당신이 이겼습니다!\n");
            win++;
        } else { //무승부도 유저의 승리도 아닌 모든 경우 
            printf("컴퓨터가 이겼습니다!\n"); 
            lose++;
        }
    }

    return 0;
}
가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 1
당신: 가위  vs  컴퓨터: 가위
무승부입니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 1
당신: 가위  vs  컴퓨터: 바위
컴퓨터가 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 1
당신: 가위  vs  컴퓨터: 바위
컴퓨터가 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 1
당신: 가위  vs  컴퓨터: 보
당신이 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 2
당신: 바위  vs  컴퓨터: 바위
무승부입니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 2
당신: 바위  vs  컴퓨터: 바위
무승부입니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 2
당신: 바위  vs  컴퓨터: 보
컴퓨터가 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 3
당신: 보  vs  컴퓨터: 바위
당신이 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 3
당신: 보  vs  컴퓨터: 바위
당신이 이겼습니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 3
당신: 보  vs  컴퓨터: 보
무승부입니다!

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 4
잘못된 입력입니다. 다시 입력해주세요.

가위(1), 바위(2), 보(3), 종료(0) 중 선택하세요: 0

게임 종료!
당신의 전적: 3승 3패 4무

--------------------------------
Process exited after 11.75 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
반응형