728x90
#include <stdio.h>
#include <time.h> // 난수 지정을 위해 필요함
void win();
void defeat();
int main(void)
{
srand(time(NULL));
int choice;
char *array[3] = { "가위", "바위", "보" };
printf("\n\n== 가위바위보 게임 ==\n\n");
printf("가위는 1, 바위는 2, 보는 3입니다. 하나를 선택하세요 : ");
scanf_s("%d", &choice);
printf("\n당신 : %s\n", array[choice - 1]);
if (choice < 1 || choice > 3)
{
printf("잘못된 값입니다. 다시 시도해주세요.");
exit(0);
}
int computer = rand() % 3;
if (computer == 0)
{
printf("컴퓨터 : %s\n", array[computer]);
}
else if (computer == 1)
{
printf("컴퓨터 : %s\n", array[computer]);
}
else if (computer == 2)
{
printf("컴퓨터 : %s\n", array[computer]);
}
if (computer + 1 == choice)
{
printf("\n비겼습니다. \n");
}
else if ((computer + 1 == 1 && choice == 2) || (computer + 1 == 2 && choice == 3) || (computer + 1 == 3 && choice == 1))
{
win();
}
else
{
defeat();
}
return 0;
}
void win()
{
printf("\n당신이 이겼습니다.\n");
}
void defeat()
{
printf("\n당신이 졌습니다.\n");
}
가위바위보 게임을 만들었다. 사용자의 승패 여부를 프린트하는데 중복되는 부분이 많아 승리, 패배를 함수로 만들고 함수 호출만 해줬다. 나는 우선 가위는 1, 바위는 2, 보는 3으로 지정해줬다. 사용자는 원하는 값을 숫자로 입력해주면 된다.
컴퓨터는 0~2 사이의 숫자 중 무작위로 한 가지 숫자를 갖게 된다. 컴퓨터의 경우 가위는 0, 바위는 1, 보는 2다.
사용자가 입력한 값과 컴퓨터가 가진 값+1이 동일한 경우 같은 패를 낸 것이니 비긴 것으로 처리한다.
if (computer + 1 == choice)
{
printf("\n비겼습니다. \n");
}
내가 컴퓨터를 이겼을 때는 win() 함수를, 내가 졌을 때는 defeat() 함수를 호출했다. C에서 함수를 사용하려면 main함수가 끝나는 부분에 함수를 만들어주고, main함수가 시작하기 전에 그 함수의 이름을 선언해주어야 한다. 나는 반환해줄 값이 없어서 void 함수를 만들었지만 반환할 값이 있는 경우 int char 등의 반환형을 입력해주어야 한다. 사실 아직 정확히 이해를 못했다... 다시 공부해야 한다.
728x90
'언어 > C' 카테고리의 다른 글
[C] define 매크로 함수 사용하기 (0) | 2022.04.24 |
---|---|
[C] 파일 입출력 - 비밀 일기 프로젝트 (0) | 2022.04.24 |
[C] 배열 - 발모제 찾기 게임 (0) | 2022.04.24 |
[C] 조건문 - 업 다운 게임 만들기 (0) | 2022.04.24 |
[C] 반복문 - 별로 피라미드 그리기 (0) | 2022.04.24 |