#include <stdio.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
printf("\n\n === 소금식혜 사이에서 일반 식혜 찾기 게임 === \n\n");
int answer; // 사용자 입력값
int tastycup = rand() % 4; // 소금식혜 컵 선택 (0~3)
int cntDrinkCup = 0; //이번 게임에 먹여볼 컵 갯수
int prevcntDrinkCup = 0; // 앞 게임에 먹여본 컵 갯수
// 서로 먹여보는 컵 갯수를 다르게 하여 정답률을 향상시키기 위함(처음에 1개 -> 다음엔 3개 ...)
//3번의 기회 (3번의 다른 사람에게 먹여볼 기회 제공)
for (int i = 1; i <= 3; i++)
{
int cup[4] = { 0, 0, 0, 0 }; // 4개의 컵
do {
cntDrinkCup = rand() % 2 + 2; // 먹여볼 컵 갯수 (그냥 %2면 0~1 / %2 +2면 2, 3)
} while (cntDrinkCup == prevcntDrinkCup);
int isIncluded = 0; // 먹여볼 컵 중 일반 식혜가 포함되었는지 여부(포함이면 1)
printf(" > %d번째 시도 : ", i);
// 먹여볼 컵 종류를 선택
for (int j = 0; j < cntDrinkCup; j++)
{
int randCup = rand() % 4; // 0~3
// 아직 선택되지 않은 컵이면, 선택 처리
if (cup[randCup] == 0)
{
cup[randCup] = 1;
if (randCup == tastycup)
{
isIncluded = 1;
}
}
// 이미 선택된 병이면, 중복이므로 다시 선택
else
{
j--;
}
}
//사용자에게 문제 표시
for (int k = 0; k < 4; k++)
{
if (cup[k] == 1)
printf("%d ", k + 1);
}
printf("식혜를 마십니다.\n\n");
if (isIncluded == 1)
{
printf(" >> 성공 ! 일반 식혜가 있습니다!!\n");
}
else
{
printf(" >> 우웩 ! 소금식혜만 있습니다.\n");
}
printf("\n ... 계속 하려면 아무키나 누르세요 ...\n\n");
getchar();
}
printf("\n\n일반 식혜는 몇 번일까요? ");
scanf_s("%d", &answer);
if (answer == tastycup + 1)
{
printf("\n >> 정답입니다!\n맛있는 식혜를 마십니다.\n");
}
else
{
printf("\n >> 틀렸습니다.\n소금식혜를 마십니다..\n", tastycup +1);
}
return 0;
}