본문 바로가기

Programming/C언어 프로젝트

첫 프로젝트 [Memory Battle]

첫 프로젝트

 

- 나의 첫 프로젝트이다.

 

- 제목은 Memory Battle

 

- 더 지니어스 블랙 가넷, 더 지니어스 그랜드파이널에서 나온 [같은 숫자 찾기] 게임이다.

 

- c언어로 개발하는 환경에 맞추어 조금의 룰들을 바꾸어 만들었다.

 


상세 코드

 

#include 
#include 
#include 
#include 
#include 
#include 


void menu(void);

void defalut(void);

void instruction(void);


void draw_board_front(void);


void draw_board_back(void);

void multi_draw_board_front(void);

void escape(void);


void multi_draw_board_back(void);


int is_correct(int, char *); /*입력받은 문자열이 정답인지 확인하는 함수*/

void endgame(char *, int);

void multi_endgame(int);


typedef struct user {
	char name[10];
	int time;
}USERUSER;


int correct = 0, wrong = 0;

int user1_correct = 0;
int user2_correct = 0;
int user1_wrong = 0;
int user2_wrong = 0;

double count = 0;




int main()
{

	srand((unsigned)time(NULL));
	clock_t start, end;
	start = clock();

	int target_list[38] = { 2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,24,27,28,30,35,40,44,50,54,55,56,60,65,66,72,77,88,91,108,112,120,130,140 };

	int select, button, target;

	char s[5];

	char s1[5], s2[5];

	USERUSER a;

	char buzzer;

	while (1)
	{
		menu();
		scanf("%d", &select);

		switch (select)
		{
		case 1:
			system("cls");

			printf("\n\n\n\t\t\t\t\t\t다짐 한마디! : ");
			getchar();
			fgets(a.name, 20, stdin);

			system("cls");

			for (int k = 1; k >= 0; k--)
			{
				draw_board_back();
				printf("\t\t\t\t\t\t10초 후 게임이 시작 됩니다   %d...\n", k);
				Sleep(1000);
			}

			while (1)
			{
				target = target_list[rand() % 38];
				draw_board_front();
				printf("\n");
				printf("점수 : \t%d\t\t\t\t\t\t타깃 넘버  : %d\n", correct, target);
				printf("오답 갯수 : %d\t\t\t\t\t   (정답(xyz) : ", wrong);

				gets(s);


				for (int i = 0; i < 3; i++)
				{
					s[i] = tolower(s[i]);
				}


				if (is_correct(target, s) == 1)
				{
					correct++;

					if (correct == 5)
						break;
					for (int k = 3; k >= 1; k--)
					{
						draw_board_back();
						printf("\n\n\n\n\n\t\t\t\t\t\t\t 정답입니다!!\n\t\t\t\t\t\t   %d초동안 게임판이 공개됩니다\n", k);
						Sleep(1000);
					}
				}
				else if (is_correct(target, s) == 0)
				{
					wrong++;
					for (int k = 3; k >= 1; k--)
					{
						draw_board_back();
						printf("\n\n\n\n\n\t\t\t\t\t\t 오답입니다!!\n\t\t\t\t\t\t%d초동안 게임판이 공개됩니다\n", k);
						Sleep(1000);
					}
				}
			}

			end = clock();


			count = (end - start) / (double)CLOCKS_PER_SEC;
			endgame(a.name, (int)count);
			button = getchar();
			Sleep(button * 1);
			break;

			count = 0;
			correct = 0;
			wrong = 0;

		case 2:
			system("cls");

			for (int k = 1; k >= 0; k--)
			{
				multi_draw_board_back();
				printf("\t\t\t\t\t10초 후 게임이 시작 됩니다   %d...\n", k);
				Sleep(1000);
			}

			while (1)
			{
				target = target_list[rand() % 38];
				multi_draw_board_front();
				printf("\n");
				printf("\n");
				printf("1p 버저 : 'a'\t\t\t\t\t\t\t\t\t2p 버저 : '/'\n");
				printf("1p점수 : %d\t\t\t\t\t\t\t\t\t2p점수  : %d\n", user1_correct, user2_correct);
				printf("1p오답 : %d\t\t\t\t\t\t\t\t\t2p오답 :  %d\n", user1_wrong, user2_wrong);
				printf("\t\t\t\t\t타깃넘버 : %d\t\t\t\t", target);

				buzzer = getchar();

				if (buzzer == 'a')
				{
					getchar();
					printf("\t\t\t\t\tPlayer 1\n");
					printf("\t\t\t\t\t정답(xyz) : ");
					gets(s1);


					for (int i = 0; i < 3; i++)
					{
						s1[i] = tolower(s1[i]);
					}

					if (is_correct(target, s1) == 1)
					{
						user1_correct++;
						for (int k = 3; k >= 1; k--)
						{
							multi_draw_board_back();
							printf("\n\n\n\n\n\t\t\t\t\t\t\tP1 정답입니다!!\n\t\t\t\t\t\t   %d초동안 게임판이 공개됩니다\n", k);
							Sleep(1000);
						}
					}
					else
					{
						user1_wrong++;
						for (int k = 3; k >= 1; k--)
						{
							multi_draw_board_back();
							printf("\n\n\n\n\n\t\t\t\t\t\tP1 오답입니다!!\n\t\t\t\t\t\t%d초동안 게임판이 공개됩니다\n", k);
							Sleep(1000);
						}
					}
				}

				else if (buzzer == '/')
				{
					getchar();
					printf("\t\t\t\t\tPlayer 2\n");
					printf("\t\t\t\t\t정답(xyz) : ");
					gets(s2);


					for (int i = 0; i < 3; i++)
					{
						s2[i] = tolower(s2[i]);
					}

					if (is_correct(target, s2) == 1)
					{
						user2_correct++;
						for (int k = 3; k >= 1; k--)
						{
							multi_draw_board_back();
							printf("\n\n\n\n\n\t\t\t\t\t\t\tP2 정답입니다!!\n\t\t\t\t\t\t   %d초동안 게임판이 공개됩니다\n", k);
							Sleep(1000);
						}
					}
					else
					{
						user2_wrong++;
						for (int k = 3; k >= 1; k--)
						{
							multi_draw_board_back();
							printf("\n\n\n\n\n\t\t\t\t\t\tP2 오답입니다!!\n\t\t\t\t\t\t%d초동안 게임판이 공개됩니다\n", k);
							Sleep(1000);
						}
					}



				}
				if (user1_correct == 3)
				{
					multi_endgame(1);
					break;
				}

				else if (user2_correct == 3)
				{
					multi_endgame(2);
					break;
				}
			}


			user1_correct = 0;
			user2_correct = 0;
			user1_wrong = 0;
			user2_wrong = 0;

			button = getchar();

			Sleep(button * 1);

			break;


		case 3:
			getchar();
			instruction();
			button = getchar();
			Sleep(button * 1);
			break;
		case 4:
			getchar();
			escape();
			button = getchar();
			Sleep(button * 1);
			break;

		default:
			getchar();
			getchar();
			defalut();
			button = getchar();
			Sleep(button * 1);
			break;

		}
		
		if (select == 4)
			break;

	}
}

void menu(void)
{
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t   Memory Battle   \t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t1. Single play      \t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t2. Multi play      \t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t3. Instruction     \t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t4. Exit     \t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t       제작자 : 리기찬I\n");
	printf("=======================================================================================================================\n\n\n");
	printf("\n");
	printf("\t\t\t\t\t       메뉴를 고르세요 : ");
}

void escape(void)
{
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t게임을 종료합니다..     \t \t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t다음에 또 봐요! \t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("=======================================================================================================================\n\n\n");
	printf("\n");
	printf("\t\t\t\t\t\tpress enter...       ");
}

void defalut(void)
{
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t올바른 숫자값을 입력하세요 !!      \t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("=======================================================================================================================\n\n\n");
	printf("\n");
	printf("\t\t\t\t\t\tpress enter...       ");

}
void instruction(void)
{
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t    \t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I1. 16개의 알파벳이 쓰인 게임 판의 뒷면엔 1~12까지의 숫자와 연산기호(+,*)가 표시되어 있다.   \t\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I2. 게임 시작전 5초 동안 게임 판의 뒷면이 단 한 번 공개된다.     \t\t\t\t\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I3. 게임이 시작되면 딜러는 매 라운드 '타깃넘버'를 무작위로 하나씩 뽑는다.\t\t\t\t\t\tI\n");
	printf("I    ('타깃넘버'는 게임 판의 숫자와 기호로 나올 수 있는 경우의 자연수이다.)\t\t\t\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I4. 타깃 넘버가 공개되면 먼저 버저를 누른 플레이어에게 5초동안의 수식 완성 기회가 주어진다.\t\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I5. 답을 말할 때는 수식의 순서인 숫자, 연산기호, 숫자에 맞춰 차례로 게임 판의 알파벳을 호명해야 한다.\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I(승리조건). 싱글플레이 = 5점 획득      멀티플레이 = 3점 획득\t\t\t\t\t\t\t\tI\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("=======================================================================================================================\n\n\n");

	printf("\n");
	printf("\t\t\t\t\t\tpress enter...       ");

}

void draw_board_front(void)
{
	system("cls");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'A', 'B', 'C', 'D');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'E', 'F', 'G', 'H');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'I', 'J', 'K', 'L');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'M', 'N', 'O', 'P');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
}

void multi_draw_board_front(void)
{
	system("cls");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'A', 'B', 'C', 'D');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'E', 'F', 'G', 'H');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'I', 'J', 'K', 'L');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", 'M', 'N', 'O', 'P');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
}


void draw_board_back(void)
{
	system("cls");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■  %s  ■   %c  ■\n", '7', '3', "10", '5');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %s  ■  %s  ■   %c  ■   %c  ■\n", "13", "11", '+', '2');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", '1', '6', '8', 'x');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■  %c   ■  %s  ■  %s  ■   %c  ■\n", '9', "14", "12", '4');
	printf("\t\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");


}

void multi_draw_board_back(void)
{
	system("cls");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■  %s  ■   %c  ■\n", '7', '3', "10", '5');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %s  ■  %s  ■   %c  ■   %c  ■\n", "13", "11", '+', '2');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■   %c  ■   %c  ■   %c  ■\n", '1', '6', '8', 'x');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■  %c   ■  %s  ■  %s  ■   %c  ■\n", '9', "14", "12", '4');
	printf("\t\t\t\t\t■\t■\t■\t■\t■\n");
	printf("\t\t\t\t\t■■■■■■■■■■■■■■■■■\n");


}


int is_correct(int target, char *s)
{
	switch (target)
	{
	case 2:
		if ((strcmp(s, "hli") == 0) || (strcmp(s, "lih") == 0))
			return 1;
		else
			return 0;
		break;
	case 3:
		if ((strcmp(s, "bli") == 0) || (strcmp(s, "lib") == 0) || (strcmp(s, "igh") == 0) || (strcmp(s, "hgi") == 0))
			return 1;
		else
			return 0;
		break;
	case 4:
		if ((strcmp(s, "pli")) == 0 || (strcmp(s, "lip") == 0) || (strcmp(s, "igb") == 0) || (strcmp(s, "bgi") == 0))
			return 1;
		else
			return 0;
		break;
	case 5:
		if ((strcmp(s, "dli") == 0) || (strcmp(s, "lid") == 0) || (strcmp(s, "igp") == 0) || (strcmp(s, "pgi") == 0) || (strcmp(s, "bgh") == 0) || (strcmp(s, "hgb") == 0))
			return 1;
		else
			return 0;
		break;
	case 6:
		if ((strcmp(s, "igd") == 0) || (strcmp(s, "gdi") == 0) || (strcmp(s, "hgp") == 0) || (strcmp(s, "pgh") == 0) || (strcmp(s, "ilj") == 0) || (strcmp(s, "jli") == 0) || (strcmp(s, "hlb") == 0) || (strcmp(s, "blh") == 0))
			return 1;
		else
			return 0;
		break;
	case 7:
		if ((strcmp(s, "igj") == 0) || (strcmp(s, "jgi") == 0) || (strcmp(s, "hgd") == 0) || (strcmp(s, "dgh") == 0) || (strcmp(s, "bgp") == 0) || (strcmp(s, "pgb") == 0) || (strcmp(s, "ila") == 0) || (strcmp(s, "ali") == 0))
			return 1;
		else
			return 0;
		break;
	case 8:
		if ((strcmp(s, "iga") == 0) || (strcmp(s, "agi") == 0) || (strcmp(s, "hgj") == 0) || (strcmp(s, "hgj") == 0) || (strcmp(s, "jgh") == 0) || (strcmp(s, "jli")) == 0 || (strcmp(s, "bgd") == 0) || (strcmp(s, "dgb") == 0))
			return 1;
		else
			return 0;
		break;
	case 9:
		if ((strcmp(s, "igk") == 0) || (strcmp(s, "kgi") == 0) || (strcmp(s, "hga") == 0) || (strcmp(s, "agh") == 0) || (strcmp(s, "bgj") == 0) || (strcmp(s, "jgb") == 0) || (strcmp(s, "pgd") == 0) || (strcmp(s, "dgp") == 0) || (strcmp(s, "ilm") == 0) || (strcmp(s, "mli") == 0))
			return 1;
		else
			return 0;
		break;
	case 10:
		if ((strcmp(s, "igm") == 0) || (strcmp(s, "mgi") == 0) || (strcmp(s, "hgk") == 0) || (strcmp(s, "kgh") == 0) || (strcmp(s, "bga") == 0) || (strcmp(s, "agb") == 0) || (strcmp(s, "pgj") == 0) || (strcmp(s, "jgp") == 0) || (strcmp(s, "ilc") == 0) || (strcmp(s, "cli") == 0) || (strcmp(s, "hld") == 0) || (strcmp(s, "dlh")) == 0)
			return 1;
		else
			return 0;
		break;
	case 11:
		if ((strcmp(s, "igc") == 0) || (strcmp(s, "cgi") == 0) || (strcmp(s, "hgm") == 0) || (strcmp(s, "mgh") == 0) || (strcmp(s, "bgk") == 0) || (strcmp(s, "kgb") == 0) || (strcmp(s, "pga") == 0) || (strcmp(s, "agp") == 0) || (strcmp(s, "dgj") == 0) || (strcmp(s, "jgd") == 0) || (strcmp(s, "ilf") == 0) || (strcmp(s, "fli")) == 0)
			return 1;
		else
			return 0;
		break;
	case 12:
		if ((strcmp(s, "igf") == 0) || (strcmp(s, "fgi") == 0) || (strcmp(s, "hgc") == 0) || (strcmp(s, "cgh") == 0) || (strcmp(s, "bgm") == 0) || (strcmp(s, "mgb") == 0) || (strcmp(s, "pgk") == 0) || (strcmp(s, "kgp") == 0) || (strcmp(s, "dga") == 0) || (strcmp(s, "agd") == 0) || (strcmp(s, "ilo") == 0) || (strcmp(s, "oli") == 0) || strcmp(s, "hlj") == 0 || (strcmp(s, "jlh") == 0) || (strcmp(s, "blp") == 0) || (strcmp(s, "plb") == 0))
			return 1;
		else
			return 0;
		break;
	case 13:
		if ((strcmp(s, "igo") == 0) || (strcmp(s, "ogi") == 0) || (strcmp(s, "hgf") == 0) || (strcmp(s, "fgh") == 0) || (strcmp(s, "bgc") == 0) || (strcmp(s, "cgb") == 0) || (strcmp(s, "pgm") == 0) || (strcmp(s, "mgp") == 0) || (strcmp(s, "dgk") == 0) || (strcmp(s, "kgd") == 0) || (strcmp(s, "jga") == 0) || (strcmp(s, "agj") == 0) || (strcmp(s, "ile") == 0) || (strcmp(s, "eli") == 0))
			return 1;
		else
			return 0;
		break;
	case 14:
		if ((strcmp(s, "ige") == 0) || (strcmp(s, "egi") == 0) || (strcmp(s, "hgo") == 0) || (strcmp(s, "ogh") == 0) || (strcmp(s, "bgf") == 0) || (strcmp(s, "fgb") == 0) || (strcmp(s, "pgc") == 0) || (strcmp(s, "cgp") == 0) || (strcmp(s, "dgm") == 0) || (strcmp(s, "mgd") == 0) || (strcmp(s, "jgk") == 0) || (strcmp(s, "kgj") == 0) || (strcmp(s, "iln") == 0) || (strcmp(s, "nli") == 0) || (strcmp(s, "hla") == 0) || (strcmp(s, "alh") == 0))
			return 1;
		else
			return 0;
		break;
	case 22:
		if ((strcmp(s, "kgn") == 0) || (strcmp(s, "ngk") == 0) || (strcmp(s, "mge") == 0) || (strcmp(s, "egm") == 0) || (strcmp(s, "cgo") == 0) || (strcmp(s, "ogc") == 0) || (strcmp(s, "hlf") == 0) || (strcmp(s, "flh") == 0))
			return 1;
		else
			return 0;
		break;
	case 23:
		if ((strcmp(s, "mgn") == 0) || (strcmp(s, "ngm") == 0) || (strcmp(s, "cge") == 0) || (strcmp(s, "egc") == 0) || (strcmp(s, "fgo") == 0) || (strcmp(s, "ogf") == 0))
			return 1;
		else
			return 0;
		break;
	case 24:
		if ((strcmp(s, "cgn") == 0) || (strcmp(s, "ngc") == 0) || (strcmp(s, "fge") == 0) || (strcmp(s, "egf") == 0) || (strcmp(s, "hlo") == 0) || (strcmp(s, "olh") == 0) || (strcmp(s, "plj") == 0) || (strcmp(s, "jlp") == 0) || (strcmp(s, "blk") == 0) || (strcmp(s, "klb") == 0))
			return 1;
		else
			return 0;
		break;
	case 27:
		if ((strcmp(s, "egn") == 0) || (strcmp(s, "nge") == 0) || (strcmp(s, "blm") == 0) || (strcmp(s, "mlb") == 0))
			return 1;
		else
			return 0;
		break;
	case 28:
		if ((strcmp(s, "hln") == 0) || (strcmp(s, "nlh") == 0) || (strcmp(s, "pla") == 0) || (strcmp(s, "alp") == 0))
			return 1;
		else
			return 0;
		break;
	case 30:
		if ((strcmp(s, "blc") == 0) || (strcmp(s, "clb") == 0) || (strcmp(s, "dlj") == 0) || (strcmp(s, "jld") == 0))
			return 1;
		else
			return 0;
		break;
	case 35:
		if ((strcmp(s, "dla") == 0) || (strcmp(s, "ald") == 0))
			return 1;
		else
			return 0;
		break;
	case 40:
		if ((strcmp(s, "plc") == 0) || (strcmp(s, "clp") == 0) || (strcmp(s, "dlk") == 0) || (strcmp(s, "kld") == 0))
			return 1;
		else
			return 0;
		break;
	case 44:
		if ((strcmp(s, "plf") == 0) || (strcmp(s, "flp") == 0))
			return 1;
		else
			return 0;
		break;
	case 50:
		if ((strcmp(s, "dlc") == 0) || (strcmp(s, "cld") == 0))
			return 1;
		else
			return 0;
		break;
	case 54:
		if ((strcmp(s, "jlm") == 0) || (strcmp(s, "mlj") == 0))
			return 1;
		else
			return 0;
		break;
	case 55:
		if ((strcmp(s, "dlf") == 0) || (strcmp(s, "fld") == 0))
			return 1;
		else
			return 0;
		break;
	case 56:
		if ((strcmp(s, "alk") == 0) || (strcmp(s, "kla") == 0))
			return 1;
		else
			return 0;
		break;
	case 60:
		if ((strcmp(s, "jlc") == 0) || (strcmp(s, "clj") == 0) || (strcmp(s, "dlo") == 0) || (strcmp(s, "old") == 0))
			return 1;
		else
			return 0;
		break;
	case 65:
		if ((strcmp(s, "dle") == 0) || (strcmp(s, "eld") == 0))
			return 1;
		else
			return 0;
		break;
	case 66:
		if ((strcmp(s, "jlf") == 0) || (strcmp(s, "flj") == 0))
			return 1;
		else
			return 0;
		break;
	case 72:
		if ((strcmp(s, "jlo") == 0) || (strcmp(s, "olj") == 0) || (strcmp(s, "klm") == 0) || (strcmp(s, "mlk") == 0))
			return 1;
		else
			return 0;
		break;
	case 77:
		if ((strcmp(s, "alf") == 0) || (strcmp(s, "fla") == 0))
			return 1;
		else
			return 0;
		break;
	case 88:
		if ((strcmp(s, "klf") == 0) || (strcmp(s, "flk") == 0))
			return 1;
		else
			return 0;
		break;
	case 91:
		if ((strcmp(s, "ale") == 0) || (strcmp(s, "ela") == 0))
			return 1;
		else
			return 0;
		break;
	case 108:
		if ((strcmp(s, "mlo") == 0) || (strcmp(s, "olm") == 0))
			return 1;
		else
			return 0;
		break;
	case 112:
		if ((strcmp(s, "kln") == 0) || (strcmp(s, "nlk") == 0))
			return 1;
		else
			return 0;
		break;
	case 120:
		if ((strcmp(s, "clo") == 0) || (strcmp(s, "olc") == 0))
			return 1;
		else
			return 0;
		break;
	case 130:
		if ((strcmp(s, "cle") == 0) || (strcmp(s, "elc") == 0))
			return 1;
		else
			return 0;
		break;
	case 140:
		if ((strcmp(s, "cln") == 0) || (strcmp(s, "nlc") == 0))
			return 1;
		else
			return 0;
		break;


	}
}

void multi_endgame(int userid)
{
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\tplayer %d win!!      \t\t\t\t\t\t      I\n", userid);
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t      I\n");
	printf("=======================================================================================================================\n\n\n");
	printf("\t\t\t\t\t\tpress enter...       ");

}

void endgame(char *winner, int score)
{
	getchar();
	system("cls");
	printf("=======================================================================================================================\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\tWin!!   %d초\t\t\t\t\t\t\t\tI\n", score);
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("I\t\t\t\t\t\t\t\t\t\t\t\t\t\t       I\n");
	printf("=======================================================================================================================\n\n\n");
	printf("\t\t\t\t\t\tpress enter...       ");

}


/*제작일 : 2019/06/15 ~ 2019/06/16
						이기찬						*/
                        

 

- 첫 프로젝트이고 혼자하는 만큼 정말 힘들었다.

 

- 특히 파일 입출력을 도입할려 했지만 실패하였다.

 

- 스스로 많이 배우는 계기가 되었다.