[C] 함수 - 컴퓨터와 가위바위보하기

2022. 4. 24. 21:08·언어/C
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
'언어/C' 카테고리의 다른 글
  • [C] 파일 입출력 - 비밀 일기 프로젝트
  • [C] 배열 - 발모제 찾기 게임
  • [C] 조건문 - 업 다운 게임 만들기
  • [C] 반복문 - 별로 피라미드 그리기
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    tcp
    Python
    EFCore
    java
    Entityfamework
    HTML
    unity
    C#
    coding
    코딩
    C언어
    라즈베리파이
    C
    EntityFramework
    백준
    유니티
    디자인패턴
    네트워크
    게임서버
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C] 함수 - 컴퓨터와 가위바위보하기
상단으로

티스토리툴바