POST

C언어 가위 바위 보 게임 만들기(Rock Paper Scissors GAME)

열혈강의 C 410p 도전5

가위 바위 보 게임을 만들어 보자. 사용자로부터 가위 바위 보 중 하나를 입력받는다. 그리고 난수 생성 함수를 이용하여 컴퓨터는 가위 바위 보 중에서 하나를 선택하게 한다.

그리고 이둘을 비교해 승자와 패자를 가려주는 프로그램을 만들어보자.


조건 1) 사용자가 질 때 까지 반복해야 한다.

옵션 1) 결기결과를 출력하도록 해보자.





#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#pragma warning(disable:4996) // scanf 보안 경고 제거용

int fight(int n,int *r);

int randnum();


int main(void) {

int num;

int chek = 0;

int result[3]={0}; // 결과 저장용 배열

while (result[2] < 1) { // 패가 기록될 경우 중단

printf("가위는 1, 바위는 2, 보는 3 : ");

scanf("%d", &num);

*result= fight(num,result);

}

printf("\n경기 결과: %d승 %d무 %d패\n", result[0], result[1], result[2]);

return 0;

}

/* 비교하는 함수 */

int fight(int n,int *r) { 

int com = randnum();


if (n == 1) { // 내가 가위를 낸 경우

if (com == 1) {

printf("당신은 가위선택, 컴퓨터는 가위선택. 비겼습니다.\n");

r[1]++;

return *r;

}

else if (com == 2) {

printf("당신은 가위선택, 컴퓨터는 바위선택. 당신이 졌습니다!\n");

r[2]++;

return *r;

}

else { 

printf("당신은 가위선택, 컴퓨터는 보선택. 당신이 이겼습니다!\n");

r[0]++;

return *r;

}

}


else if (n == 2) { // 내가 바위를 낸 경우

if (com == 1) {

printf("당신은 바위선택, 컴퓨터는 가위선택. 당신이 이겼습니다!\n");

r[0]++;

return *r;

}

else if (com == 2) {

printf("당신은 바위선택, 컴퓨터는 바위선택. 비겼습니다!\n");

r[1]++;

return *r;

}

else {

printf("당신은 바위선택, 컴퓨터는 보선택. 당신이 졌습니다!\n");

r[2]++;

return *r;

}

}


else if (n == 3) { // 내가 보를 낸 경우

if (com == 1) {

printf("당신은 보선택, 컴퓨터는 가위선택. 당신이 졌습니다!\n");

r[2]++;

return *r;

}

else if (com == 2) {

printf("당신은 보선택, 컴퓨터는 바위선택. 당신이 이겼습니다!\n");

r[0]++;

return *r;

}

else {

printf("당신은 보선택, 컴퓨터는 보선택. 비겼습니다!\n");

r[1]++;

return *r;

}

}


else { // 입력이 잘못 되었을때

printf("잘못 입력 하셨습니다 !!\n");

return *r;

}

}

/* 무작위 수 생성 함수 */

int randnum(void) { 

srand((int)time(NULL));

return (rand() % 3) + 1;

}


쫌더 간결하게 하고싶었지만 바쁜관계로 대충 짜 보았습니다.

쫌더 쉽고 복잡하지않게 만들어 주세요.