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
계속하려면 아무 키나 누르십시오 . . .
반응형