본문 바로가기

개발자 모드/C언어

C언어 게임 아빠는 대머리 ...

728x90
#include <stdio.h>
#include <time.h>

int main(void)
{

	srand(time(NULL));

	printf("\n\n  ==  아빠는 대머리 게임 == \n\n");

	int answer;
	int treatment = rand() % 4;


	int cntShowBottle = 0;     // 이번 게임에 보여줄 병 갯수
	int prevCntShowBottle = 0; // 앞 게임에 보여준 병 갯수

	//서로 보여준 병 갯수를 다르게 하여 정답률 향상 (처음에 2개 -> 다음에 3개)
	//3번의 기회 (3번의 발모제 투여 시도)

	for (int i = 1; i <= 3; i++)
	{
		int bottle[4] = { 0,0,0,0 };  // 4개의 병

		do 
		{
			cntShowBottle = rand() % 2 + 2; // 보여줄 병 갯수 0~1 +2 -> 2 ~ 3
		} while (cntShowBottle == prevCntShowBottle);

		prevCntShowBottle = cntShowBottle;

		int isIncluded = 0; // 보여줄 병 중에 발모제가 포함되었는지 여부
		printf("> %d 변째 시도 :", i);

		// 보여줄 병 종류를 선택

		for (int j = 0; j < cntShowBottle; j++)
		{
			int randBottle = rand() % 4; // 0 ~ 3 

			// 아직 선택되지 않은 병이면, 선택 처리

			if (bottle[randBottle] == 0)
			{
				bottle[randBottle] = 1;
				if (randBottle == treatment)
				{
					isIncluded = 1;
				}
			}
			//이미 선택된 병이면, 중복이므로 다시 선택
			else
			{
				j--;
			}

		}
		//  사용자에게 문제 표시
		for (int k = 0; k < 4; k++)
		{
			if(bottle[k] == 1)
				printf("%d  ", k+1);
		}
		printf(" 물약을 바릅니다. \n\n");

		if (isIncluded == 1)
		{
			printf(">> 성공 :머리가 났어요");
		}
		else
		{
			printf(">> 실패 :머리가 나지 않았어요");
		}

		printf("\n ..  계속 하려면 아무키나 누르세요\n");
		getchar();

	}

	printf("\n\n 발모제는 몇번 일까요");
	scanf_s("%d", &answer);

	if (answer == treatment + 1)
	{
		printf("\n 정답입니다.");
	}
	else
	{
		printf("\n 땡 !!! 정답은  %d입니다.\n\n", treatment+1);

	}

	return 0;

}
​

 

 

728x90

'개발자 모드 > C언어' 카테고리의 다른 글

C언어 배열 값 초기화 모두 않할시...  (0) 2021.09.15
핸드폰으로 C언어 코딩하기  (0) 2021.09.15
C언어 함수문의 활용 기초  (0) 2021.09.15
C언어 && || 연산법  (0) 2021.09.15
C언어 for - if문  (0) 2021.09.15