#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
#include<termios.h>
//#include <windows.h>


int getch()
{
    int c;
    struct termios oldattr, newattr;

    tcgetattr(STDIN_FILENO, &oldattr);           // 현재 터미널 설정 읽음
    newattr = oldattr;
    newattr.c_lflag &= ~(ICANON | ECHO);         // CANONICAL과 ECHO 끔
    newattr.c_cc[VMIN] = 1;                      // 최소 입력 문자 수를 1로 설정
    newattr.c_cc[VTIME] = 0;                     // 최소 읽기 대기 시간을 0으로 설정
    tcsetattr(STDIN_FILENO, TCSANOW, &newattr);  // 터미널에 설정 입력
    c = getchar();                               // 키보드 입력 읽음
    tcsetattr(STDIN_FILENO, TCSANOW, &oldattr);  // 원래의 설정으로 복구
    return c;
}


// key와 일치하는지 찾는 함수
int findKey(char *command, char *key){
	int lenCommand=0;
	int lenKey=0;
	
	// 문자열 길이 계산
	while(command[lenCommand] != '\0'){
		lenCommand++;
	}
	while(key[lenKey]!= '\0'){
		lenKey++;
	}
	
    int cnt=0, i=0;
	if(lenCommand != lenKey)
		return 0; // 일치하지 않음
	else{
		for(i=0; i<lenCommand; i++){
			if(key[i] != command[i]){
				return 0; // 일치하지 않음
			}else{
				cnt++;
			}
   		}
		if(cnt == lenKey)
			return 1;
	}
};

int findKey2(char *command, char *key2){
	int lenCommand=0;
	int lenKey2=0;
	
	// 문자열 길이 계산
	while(command[lenCommand] != '\0'){
		lenCommand++;
	}
	while(key2[lenKey2]!= '\0'){
		lenKey2++;
	}
	
    int cnt=0, i=0;
	if(lenCommand != lenKey2)
		return 0; // 일치하지 않음
	else{
		for(i=0; i<lenCommand; i++){
			if(key2[i] != command[i]){
				return 0; // 일치하지 않음
			}else{
				cnt++;
			}
   		}
		if(cnt == lenKey2)
			return 1;
	}
};

int findKey3(char *command, char *key3){
	int lenCommand=0;
	int lenKey3=0;
	
	// 문자열 길이 계산
	while(command[lenCommand] != '\0'){
		lenCommand++;
	}
	while(key3[lenKey3]!= '\0'){
		lenKey3++;
	}
	
    int cnt=0, i=0;
	if(lenCommand != lenKey3)
		return 0; // 일치하지 않음
	else{
		for(i=0; i<lenCommand; i++){
			if(key3[i] != command[i]){
				return 0; // 일치하지 않음
			}else{
				cnt++;
			}
   		}
		if(cnt == lenKey3)
			return 1;
	}
};


int main() {
	setbuf(stdout, NULL);
    char command[100];// 키 입력
    char key[100];//1 가지 선택 입력 확인
    char key2[100];//2가지 선택지 중 2번째 선택 입력 확인
	char key3[100];//3가지 선택지 중 3번쨰 선택 입력 확인

    int quest=0;// 받은 임무 수
    
    int o;
	
	int skill = 0; // 베기 숙련도
	
	int two = 0; //2연 베기 습득 여부
	int strong = 0; //강하게베기 습득 여부
	
    int i=0;
	int lenCommand=0; // command 문자열 길이
	int lenKey=0; // key 문자열 길이
    int cnt=0;

    float pw = 20; // 플레이어 공격력
    float hp = 200; //플레이어 체력
    float dp = 10; //플레이어 방어력
	int mp = 50; //플레이어 마력

    float wp;// 무기 공격피해
	
	int dice=0; // 적, 플레이어 공통 공격 주사위
	
	int Mdice, Edice; //플레이어 주사위, 적 주사위 숫자
    
    float Epw; //적 공격력
    float Ehp; // 적 체력
    float Edp; //적 방어력
    
	float total = 0; // 총 피해량
	
	int die=0; // 죽은 횟수
	
	int redscale = 0; //몬스터 소재
	
	
    
    
    printf("                          --=@@@@@@@@@==-,                                                                                  \n");
    printf("                      .$$$@@@@@@@@@@@@@@$$=                                                                                 \n");
    printf("                  .~=@@@@@@@@@@@@@@@@@@@@@@@@;~                                                                             \n");
    printf("                 ##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#$                          .-$@@:.                    .@$-.                 \n");
    printf("              ,:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:                       .=@@@@@=.                    ;@@!,                \n");
    printf("              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                      ~@@---!@$                    .!@@;                \n");
    printf("            *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@~                    =@.   .=@.         ..-~..     :@@;                \n");
    printf("           #@@@@@@*.  .*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                   #@.    *@,        ,=@@@@$,    :@@!                \n");
    printf("          !@@$:.          ,:#@@@@@@@@@@@@@@@@@@@@@@@@@@-                  ;@;   ,=@.        =@@;:#@$    :@@!                \n");
    printf("         .@#:                ;#@@@@@@@@@@@@@@@@@@@@@@@@@                  -@@$,.#@#        .@@   .*@*   :@@!.;,             \n");
    printf("         $$                    $@@@@@@@@@@@@@@@@@@@@@@@@=                  ~$@@@@=.        ,@;    :@#   ~@@@@@@~            \n");
    printf("        -#                      #@@@@@@@@@@@@@@@@@@@@@@@#.                  ,~~~~.         .@$.  .!@#   -#@=~!$-            \n");
    printf("        -,        .====         -@@@@@@@@@=----@@@@@@@@@@-                        ....      =@@!:#@@.   ,#@!                \n");
    printf("        ~,       .@@@@@#        -@@@@@@@@#     -@@@@@@@@@-         -~~~~~~~~~~~~:!#@@@$,    -$@@@@@!    .$@!.~,             \n");
    printf("        ~,        #@@@@$        .#@@@@@@@#     -@@@@@@@@@-         -@@@@@@@@@@@@@##@@@@~     ,:*=;~.     $@#=@$,            \n");
    printf("        -,         ====          =@@@@@@@@@---~@@@@@@@@@=-          ,#@@@@*-...........                  $@@@@@:            \n");
    printf("        -,                       .@@@@@@@@@@@@@@@@@@@@@@!.            ~:.       .-.                      $$. .~.            \n");
    printf("         $                        ,@@@@@@@@@@@@@@@@@@@$~*                !!, .~*=#=-                .***~=-                 \n");
    printf("          !                        .!@@@@@@@@@@@@@@@@; *                 #@@-@@@@@@=.              :@@@@@!                  \n");
    printf("          :-                         .!=@@@@@@@@@@!!  :,                 .$@@,*;.*@=              -#@$*=#@;                 \n");
    printf("           #.                             .:=*~      ;-                   ~@@    *@*              :@*.  -##,                \n");
    printf("            :;                                      ;-                    -@@    *@~              :@.    $@:                \n");
    printf("              ;                                    *                      ,=@,,--=@.              :@$,  ,$@-                \n");
    printf("               :!                                ::                        !@=$@@@@~              ,$@$!!$@*                 \n");
    printf("                 *-.                          .-,                          !@-*=;~-.               .#@@@@*.                 \n");
    printf("                   ~.*.                    .*.~                                                                             \n");
    printf("                       *=  ,,.      .,, .=:                                                                                 \n");
    printf("                              '''""'                                                                                        \n");
    
                                    


        printf("\n");



    printf("                        --'s'를 눌러 게임을 시작하세요.--   \n");
	strcpy(key, "s");
    scanf("%s", command);
	
	for(o=0; o<999; o++)
	{
		if(findKey(command, key))
		{
			break;
		}
		else
		{
			printf("'s'를 눌러주세요.\n");
			scanf("%s", command);
		}
	}
   	        
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
              printf("-------------------------------------------------------------------------------\n");
                printf("무과 시험이 얼마 남지 않은 당신, 그런데 당신에게는 문제가 있습니다. \n 바로 또 다른 인격, 당신은 매우 유능한 인물이지만 다른 인격들은 제멋대로입니다. \n 당신은 다른 인격을 제거하기로 마음 먹습니다.\n");
                 printf("-------------------------------------------------------------------------------\n");
	getch();
            printf("\n");
            printf("\n");
            printf("\n");
            printf("약제사: 그래서... 날 찾아왔다고?\n");
	getch();
            printf("       인격을 없애는 약이라... 재료가 좀 많이 필요해서\n");
	getch();
            printf("       몇가지 재료는 너가 구해와야해\n");
	getch();
			printf("       일단 이 약을 받아. 이 약으로 인격을 일시적으로 통제 할 수 있을거야.\n");
	getch();
            printf("       그리고... '서남' 지방으로 가봐\n");
	getch();
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
    
        
            printf("'m'을 눌러 지도를 펼치세요.\n");
            scanf("%s", command);
            strcpy(key, "m");
	
            for(o=0; o<999; o++)
			{
				if(findKey(command, key))
				{
					break;
				}
				else{
					printf("'m'을 눌러 지도를 펼치세요.\n");
					scanf("%s", command);
				}
			}
                printf("\n");
                printf("\n");
printf("                                                       |_____|                                                             \n");
printf("                                                       |_____|                                                             \n");
printf("                                                     __________                                                            \n");
printf("                                                      ___|___                                                              \n");
printf("                                                            |                                                              \n");
printf("                                                         |                                                                 \n");
printf("                                                         |                                                                 \n");
printf("                                                         |                                                                 \n");
printf("                                _________________________|_________________________                                        \n");
printf("                               |                         |                         |                                       \n");
printf("                               |        \\_______/        |                         |                                      \n");
printf("                               |        @////\\\\\\\\@       |    ╭ ◜◝ ͡ ◜◝ ͡  ◜◝      |                                    \n");
printf("                               |        _|_║║║║_|_       |   ( ◝◞ ◜◝  ◜◟  )     |                                        \n");
printf("                               |	 ^      ^        |     ╰ ◟◞ ͜  ◟ ͜  ◞       |                                            \n");
printf("                               |     ww            w     | \033[0;34m     ヽ、`、ヽ`ヽ   \033[0m  |                     ________             \n");
printf("                               |             ww          | \033[0;34m       ヽ    ヽ`    \033[0m   |                    |                    \n");
printf("     |     |                   |       ww            ww  | \033[0;34m       ヽ`ヽ、ヽ、ヽ \033[0m  |                    |________             \n");
printf("     |  ___|    _______________|_________________________|_________________________|_______________  _______|_______        \n");
printf("    / \\    |                   |         www     ww      |   ww     \033[0;32m     _     \033[0m    |                      _____            \n");
printf("   /   \\   |                   | ww       w         ww   |       ww   \033[0;32m  /@\\    \033[0m    |                     /     \\         \n");
printf("                               |   ww          w         |   ww      \033[0;32m  /@@@\\__   \033[0m  |                     \\_____/          \n");
printf("                               |\033[0;34m~~~~~~~\033[0m w ww     www     |       www\033[0;32m _/@@@@/@@\\   \033[0m |                                       \n");
printf("                               |\033[0;34m~~~~~~~~~\033[0m    ww      www |         \033[0;32m /@\\@@@/@@@@\\ \033[0m  |                                      \n");
printf("                               |\033[0;34m~~~~~~~~~~~\033[0m       ww     |    ww  \033[0;32m /@@@\\@/@@@@@@\\ \033[0m |                                      \n");
printf("                               |\033[0;34m~~~~~~~~~~~~~\033[0m   www      |              www        |                                        \n");
printf("                               |\033[0;34m~~~~~~~~~~~~~~\033[0m     ww    |   ww    www         w   |                                        \n");
printf("                               |_________________________|_________________________|                                        \n");
printf("                                                         |                                                                  \n");
printf("                                                         |                                                                  \n");
printf("                                                         |                                                                  \n");
printf("                                                         |                                                                  \n");
printf("                                                     |       |                                                              \n");
printf("                                                     |_____  |__                                                            \n");
printf("                                                         _____                                                              \n");
printf("                                                        |_____|                                                             \n");
              printf("\n");
				printf("\n");
				printf("\n");
				printf("\n");
                printf("이동할 지역을 입력하세요.\n");
                printf("\n");
        
            scanf("%s", command);
            strcpy(key, "서남");
            for(o=0; o<99999; o++)
			{
				if(findKey(command, key))
				{
					break;
				}
				else{
					printf("'서남' 지방으로 이동하세요.\n");
					scanf("%s", command);
				}
			}
                
                printf("서남 지방 마을로 이동합니다...\n");
					printf("이동중");
					
					int timer;
						
				for(timer=0; timer<3; timer++)
				{
					printf(".");
					sleep(1);
				}
				printf("\n");
	printf("\n");
	printf("\n");

            printf("시원한 해풍이 불어오는 마을에 들어섰습니다...\n");
            printf("\n");
            printf("\n");
            printf("\n");
	getch();
                    printf("어쨰서인지 마을에 사람들이 잘 보이지 않습니다. 그떄, 당신에게 한 노인이 다가옵니다.\n");
	getch();
            printf("\n");
                    printf("노인: 이보게 혹시 내 부탁좀 들어주겠는가?\n");
	getch();
                    printf("      이 마을은 어업으로 먹고사는 마을이라네\n");
	getch();
                    printf("      그러나 무슨 일인지 배가 바다로 나간뒤로 돌아오지 못하고 있다네\n");
	getch();
                    printf("      이대로라면 모두 굶어 죽고말게야... 이유를 좀 알아봐 주게나\n");
	getch();
        	printf("\n");
                    printf("의협심 넘치는 당신은 노인의 부탁을 들어주기로 합니다.\n");
	getch();
      		printf("\n");
                    printf("노인: 정말 고맙네! 내 비록 가진 것 없지만, 돌아오면 톡톡히 사례하겠네\n");
	getch();
                    printf("      저기에 배를 빌려주겠네, 꼭 문제를 알아내주게나\n");
	getch();
        	printf("\n");
        	printf("\n");

            printf("'필드'로 이동하세요\n");
            scanf("%s", command);
            strcpy(key, "필드");
            for(o=0; o<99999; o++)
			{
				if(findKey(command, key))
				{
					break;
				}
				else{
					printf("'필드'를 입력해주세요.\n");
					scanf("%s", command);
				}
			}
                    printf("필드로 이동합니다...\n");
					printf("이동중");
						
				for(timer=0; timer<3; timer++)
				{
					printf(".");
					sleep(1);
				}
				printf("\n");
	printf("\n");
        	printf("\n");

                printf("배를 타고 바다로 나왔습니다.\n");
	printf("\n");
        	printf("\n");
	getch();
				printf("바다는 배 한척 없이 고요합니다.\n");
	getch();
				printf("그러던 중...");
                printf("수면이 기이하게 일렁입니다\n");
                for(timer=0; timer<3; timer++)
				{
					printf(".");
					sleep(1);
				}
				Epw = 30;
				Ehp = 150;
				Edp = 20;
	printf("\n");
                printf("\n\033[0;34m전");
	sleep(1);
				printf("\033[0;33m 투");
	sleep(1);
				printf("\033[0;31m  발\033[0m");
	sleep(1);
				printf("\033[0;32m 생\033[0m");
	sleep(1);
				printf("!");
	sleep(1);
				printf("!\n");
	getch();
				printf("\033[0;34m내 체력\033[0m : %.1f\n", hp);
	printf("\n");
				printf("\033[0;31m적 체력\033[0m : %.1f\n", Ehp);
	printf("\n");
				
	getch();
	
			srand(time(NULL));
				int t = rand() % 6; 
				switch (t)
				{
					case 0:	
					{
						printf("\033[0;34m내 주사위\033[0m : 1\n");
						Mdice = 1;
						break;
					}
					case 1:
					{
						printf("\033[0;34m내 주사위\033[0m : 2\n");
						Mdice = 2;
						break;
					}
					case 2:
					{
						printf("\033[0;34m내 주사위\033[0m : 3\n");
						Mdice = 3;
						break;
					}
					case 3:
					{
						printf("\033[0;34m내 주사위\033[0m : 4\n");
						Mdice = 4;
						break;
					}
					case 4:
					{
						printf("\033[0;34m내 주사위\033[0m : 5\n");
						Mdice = 5;
						break;
					}
					case 5:
					{
						printf("\033[0;34m내 주사위\033[0m : 6\n");
						Mdice = 6;
						break;
					}
					default:printf("x\n"); break;
				}
					srand(time(NULL)+4);
				int f = rand() % 6;
				switch (f)
				{
					case 0:	
					{
						printf("\033[0;31m적 주사위\033[0m : 1\n");
						Edice = 1;
						break;
					}
					case 1:
					{
						printf("\033[0;31m적 주사위\033[0m : 2\n");
						Edice = 2;
						break;
					}
					case 2:
					{
						printf("\033[0;31m적 주사위\033[0m : 3\n");
						Edice = 3;
						break;
					}
					case 3:
					{
						printf("\033[0;31m적 주사위\033[0m : 4\n");
						Edice = 4;
						break;
					}
					case 4:
					{
						printf("\033[0;31m적 주사위\033[0m : 5\n");
						Edice = 5;
						break;
					}
					case 5:
					{
						printf("\033[0;31m적 주사위\033[0m : 6\n");
						Edice = 6;
						break;
					}
					default:printf("x\n"); break;
				}
	
	
				if(Mdice <= Edice)
				{
					printf("\033[0;34m나 선공!\033[0m\n");
					while(1>0)
					{
						printf("\033[0;32m당신의 차례입니다.\033[0m\n");
							printf("행동을 선택하세요!\n");
							printf("\n");
							printf("'공격'\n");
							printf("'물건사용'\n");
							printf("'도주하기'\n");
							printf("\n");

									strcpy(key, "공격");
									strcpy(key2, "물건사용");
									strcpy(key3, "도주하기");
									scanf("%s", command);
									for(o=0; o<99999; o++)
									{
										if(findKey(command, key))
										{
											break;
										}
										else if(findKey2(command, key2))
										{
											break;
										}
										else if(findKey3(command, key3))
										{
											break;
										}
										else{
											printf("올바른 행동을 입력하세요.\n");
											scanf("%s", command);
										}
									}

									if(findKey(command, key))
									{
											printf("공격:\n");	
											printf("'베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 회복 : 10\033[0m)\n", pw);
											printf("\n");
											printf("기술:\n");
											if(two == 1)
											{
												printf("'2연베기'(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)", pw);
											}
											else if(strong == 1)
											{
												printf("'강하게베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)", pw * 2.5);
											}
											else
											{
												printf("없음\n");
											}
											//printf("'잘공격하기'(피해량 : %d)(마력 소모 : 20)\n", pw * 2);
											printf("현재 마력: %d\n", mp);

											strcpy(key, "베기");
											if( two == 1)
											{
												strcpy(key2, "2연베기");
											}
											if(strong == 1)
											{
												strcpy(key3, "강하게베기");
											}
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else if(findKey3(command, key3))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은\033[0;34m %s \033[0m을(를) 사용했습니다.\n", command);//베기
												mp = mp + 10;
												skill ++;
												printf("베기 \033[0;35m숙련도\033[0m + 1\n");
												if(skill == 5)
												{
													printf("기술을 습득할 수 있습니다!\n");
													printf("습득 가능한 기술:\n");
													printf("\n");
													printf("'2연베기' (2번 베어 총 2회 공격합니다.)\n(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)\n", pw);
													printf("'강하게베기'(강하게 베어 큰 피해를 입힙니다.)\n(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)\n", pw * 2.5);

													strcpy(key2, "2연베기");
													strcpy(key3, "강하게베기");
													scanf("%s", command);
													for(o=0; o<99999; o++)
													{
														if(findKey2(command, key2))
														{
															break;
														}
														else if(findKey3(command, key3))
														{
															break;
														}
														else{
															printf("습득할 기술을 입력하세요.\n");
															scanf("%s", command);
														}
													}

													if(findKey2(command, key2))
													{
														printf("'2연베기'을(를) 습득했습니다!\n");
														two++;
													}
													else if(findKey3(command, key3))
													{
														printf("'강하게 베기'을(를) 습득했습니다!\n");
														strong++;
													}
												}

												srand(time(NULL));
												int f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey2(command, key2))
											{
												if(mp < 20)
												{
													printf("마력이 부족합니다.\n");
														continue;
												}
												mp = mp - 20;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
												
														printf("남은 공격 횟수: 1\n");
														getch();
														
												srand(time(NULL) + 4);
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey3(command, key3))
											{
												if(mp < 30)
												{
													printf("마력이 부족합니다.\n");
														continue;
												}
												mp = mp - 30;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												pw = pw * 2.5;
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														pw = pw / 2.5;
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
											}
										}
										else if(findKey2(command, key2))
										{
											printf("사용 가능 물건:\n");	
											printf("'체력물약'(체력 회복 : 50)\n");
											printf("'마력물약'(마력 회복 : 50)\n");

											strcpy(key, "체력물약");
											strcpy(key2, "마력물약");
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은 \033[0;32m%s\033[0m을(를) 사용했습니다.\n", command);//체력 물약
												hp = hp + 50;
												printf("현재 체력: %.1f\n", hp);
											}
											else if(findKey2(command, key2))
											{
												printf("당신은 \033[0;34m%s\033[0m을(를) 사용했습니다.\n", command);//마력 물약
												mp = mp + 50;
												printf("현재 마력: %d\n", mp);
											}
										}
										else if(findKey3(command, key3))
										{
											printf("당신은 도망쳤습니다.\n");
											break;
										}
										printf("\033[0;31m적 차례입니다.\033[0m\n");
						getch();
								printf("\033[0;31m적괴어\033[0m이(가) 배에 빠르게 부딪혀 공격했습니다.\n");

								srand(time(NULL)+5);
								int f = rand() % 6;
										switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = Epw * 2;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = Epw * 1.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = Epw * 0.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = Epw * 0;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
											printf("현재 내 체력: %.1f\n", hp);
						getch();
											if(hp <= 0)
											{
												printf("\033[0;31m패배했습니다...\033[0m\n");
												break;
											}
						}
				}
                else if(Edice < Mdice)
				{			
					printf("적 선공!\n");
					while(1>0)
					{
						printf("\033[0;31m적 차례입니다.\033[0m\n");
						getch();
								printf("\033[0;31m적괴어\033[0m이(가) 배에 빠르게 부딪혀 공격했습니다.\n");

								srand(time(NULL)+5);
								int f = rand() % 6;
										switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = Epw * 2;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = Epw * 1.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = Epw * 0.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = Epw * 0;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
											printf("현재 내 체력: %.1f\n", hp);
						getch();
											if(hp <= 0)
											{
												printf("\033[0;31m패배했습니다...\033[0m\n");
												break;
											}
						
								nomp:		
						
							printf("\033[0;32m당신의 차례입니다.\033[0m\n");
							printf("행동을 선택하세요!\n");
							printf("\n");
							printf("'공격'\n");
							printf("'물건사용'\n");
							printf("'도주하기'\n");
							printf("\n");

									strcpy(key, "공격");
									strcpy(key2, "물건사용");
									strcpy(key3, "도주하기");
									scanf("%s", command);
									for(o=0; o<99999; o++)
									{
										if(findKey(command, key))
										{
											break;
										}
										else if(findKey2(command, key2))
										{
											break;
										}
										else if(findKey3(command, key3))
										{
											break;
										}
										else{
											printf("올바른 행동을 입력하세요.\n");
											scanf("%s", command);
										}
									}

									if(findKey(command, key))
									{
											printf("공격:\n");	
											printf("'베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 회복 : 10\033[0m)\n", pw);
											printf("\n");
											printf("기술:\n");
											if(two == 1)
											{
												printf("'2연베기'(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)", pw);
											}
											else if(strong == 1)
											{
												printf("'강하게베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)", pw * 2.5);
											}
											else
											{
												printf("없음\n");
											}
											//printf("'잘공격하기'(피해량 : %d)(마력 소모 : 20)\n", pw * 2);
											printf("현재 마력: %d\n", mp);

											strcpy(key, "베기");
											if( two == 1)
											{
												strcpy(key2, "2연베기");
											}
											if(strong == 1)
											{
												strcpy(key3, "강하게베기");
											}
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else if(findKey3(command, key3))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은\033[0;34m %s \033[0m을(를) 사용했습니다.\n", command);//베기
												mp = mp + 10;
												skill ++;
												printf("베기 \033[0;35m숙련도\033[0m + 1\n");
												if(skill == 5)
												{
													printf("기술을 습득할 수 있습니다!\n");
													printf("습득 가능한 기술:\n");
													printf("\n");
													printf("'2연베기' (2번 베어 총 2회 공격합니다.)\n(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)\n", pw);
													printf("'강하게베기'(강하게 베어 큰 피해를 입힙니다.)\n(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)\n", pw * 2.5);

													strcpy(key2, "2연베기");
													strcpy(key3, "강하게베기");
													scanf("%s", command);
													for(o=0; o<99999; o++)
													{
														if(findKey2(command, key2))
														{
															break;
														}
														else if(findKey3(command, key3))
														{
															break;
														}
														else{
															printf("습득할 기술을 입력하세요.\n");
															scanf("%s", command);
														}
													}

													if(findKey2(command, key2))
													{
														printf("'2연베기'을(를) 습득했습니다!\n");
														two++;
													}
													else if(findKey3(command, key3))
													{
														printf("'강하게 베기'을(를) 습득했습니다!\n");
														strong++;
													}
												}

												srand(time(NULL));
												int f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey2(command, key2))
											{
												if(mp < 20)
												{
													printf("마력이 부족합니다.\n");
													goto nomp;
												}
												mp = mp - 20;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
												
														printf("남은 공격 횟수: 1\n");
														getch();
														
												srand(time(NULL) + 4);
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey3(command, key3))
											{
												if(mp < 30)
												{
													printf("마력이 부족합니다.\n");
													goto nomp;
												}
												mp = mp - 30;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												pw = pw * 2.5;
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														pw = pw / 2.5;
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
											}
										}
										else if(findKey2(command, key2))
										{
											printf("사용 가능 물건:\n");	
											printf("'체력물약'(체력 회복 : 50)\n");
											printf("'마력물약'(마력 회복 : 50)\n");

											strcpy(key, "체력물약");
											strcpy(key2, "마력물약");
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은 \033[0;32m%s\033[0m을(를) 사용했습니다.\n", command);//체력 물약
												hp = hp + 50;
												printf("현재 체력: %.1f\n", hp);
											}
											else if(findKey2(command, key2))
											{
												printf("당신은 \033[0;34m%s\033[0m을(를) 사용했습니다.\n", command);//마력 물약
												mp = mp + 50;
												printf("현재 마력: %d\n", mp);
											}
										}
										else if(findKey3(command, key3))
										{
											printf("당신은 도망쳤습니다.\n");
											break;
										}
					
				}
				}
	
				printf("\n당신은 재앙의 원인을 알아냈습니다.\n 증명을 위해 괴수의 부산물을 얻으세요.\n");
		while(1>0)
		{
					printf("\033[0;32m목표: 붉은 비늘 4개 모으기.(현재 모은 수: %d)\033[0m\n", redscale);
	
	                printf("괴수를 찾아 이동합니다.\n");
		printf("\n");
        	printf("\n");
                for(timer=0; timer<3; timer++)
				{
					printf(".");
					sleep(1);
				}
				Epw = 30;
				Ehp = 150;
				Edp = 20;
				
				hp = 200;
				mp = 50;
		printf("\n");
                printf("\n\033[0;34m전");
	sleep(1);
				printf("\033[0;33m 투");
	sleep(1);
				printf("\033[0;31m  발\033[0m");
	sleep(1);
				printf("\033[0;32m 생\033[0m");
	sleep(1);
				printf("!");
	sleep(1);
				printf("!\n");
	getch();
				printf("\033[0;34m내 체력\033[0m : %.1f\n", hp);
	printf("\n");
				printf("\033[0;31m적 체력\033[0m : %.1f\n", Ehp);
	printf("\n");
				
	getch();
	
			srand(time(NULL));
				int t = rand() % 6; 
				switch (t)
				{
					case 0:	
					{
						printf("\033[0;34m내 주사위\033[0m : 1\n");
						Mdice = 1;
						break;
					}
					case 1:
					{
						printf("\033[0;34m내 주사위\033[0m : 2\n");
						Mdice = 2;
						break;
					}
					case 2:
					{
						printf("\033[0;34m내 주사위\033[0m : 3\n");
						Mdice = 3;
						break;
					}
					case 3:
					{
						printf("\033[0;34m내 주사위\033[0m : 4\n");
						Mdice = 4;
						break;
					}
					case 4:
					{
						printf("\033[0;34m내 주사위\033[0m : 5\n");
						Mdice = 5;
						break;
					}
					case 5:
					{
						printf("\033[0;34m내 주사위\033[0m : 6\n");
						Mdice = 6;
						break;
					}
					default:printf("x\n"); break;
				}
					srand(time(NULL)+4);
				int f = rand() % 6;
				switch (f)
				{
					case 0:	
					{
						printf("\033[0;31m적 주사위\033[0m : 1\n");
						Edice = 1;
						break;
					}
					case 1:
					{
						printf("\033[0;31m적 주사위\033[0m : 2\n");
						Edice = 2;
						break;
					}
					case 2:
					{
						printf("\033[0;31m적 주사위\033[0m : 3\n");
						Edice = 3;
						break;
					}
					case 3:
					{
						printf("\033[0;31m적 주사위\033[0m : 4\n");
						Edice = 4;
						break;
					}
					case 4:
					{
						printf("\033[0;31m적 주사위\033[0m : 5\n");
						Edice = 5;
						break;
					}
					case 5:
					{
						printf("\033[0;31m적 주사위\033[0m : 6\n");
						Edice = 6;
						break;
					}
					default:printf("x\n"); break;
				}
	
	
				if(Mdice <= Edice)
				{
					printf("\033[0;34m나 선공!\033[0m\n");
					while(1>0)
					{
						printf("\033[0;32m당신의 차례입니다.\033[0m\n");
							printf("행동을 선택하세요!\n");
							printf("\n");
							printf("'공격'\n");
							printf("'물건사용'\n");
							printf("'도주하기'\n");
							printf("\n");

									strcpy(key, "공격");
									strcpy(key2, "물건사용");
									strcpy(key3, "도주하기");
									scanf("%s", command);
									for(o=0; o<99999; o++)
									{
										if(findKey(command, key))
										{
											break;
										}
										else if(findKey2(command, key2))
										{
											break;
										}
										else if(findKey3(command, key3))
										{
											break;
										}
										else{
											printf("올바른 행동을 입력하세요.\n");
											scanf("%s", command);
										}
									}

									if(findKey(command, key))
									{
											printf("공격:\n");	
											printf("'베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 회복 : 10\033[0m)\n", pw);
											printf("\n");
											printf("기술:\n");
											if(two == 1)
											{
												printf("'2연베기'(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)", pw);
											}
											else if(strong == 1)
											{
												printf("'강하게베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)", pw * 2.5);
											}
											else
											{
												printf("없음\n");
											}
											//printf("'잘공격하기'(피해량 : %d)(마력 소모 : 20)\n", pw * 2);
											printf("현재 마력: %d\n", mp);

											strcpy(key, "베기");
											if( two == 1)
											{
												strcpy(key2, "2연베기");
											}
											if(strong == 1)
											{
												strcpy(key3, "강하게베기");
											}
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else if(findKey3(command, key3))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은\033[0;34m %s \033[0m을(를) 사용했습니다.\n", command);//베기
												mp = mp + 10;
												skill ++;
												printf("베기 \033[0;35m숙련도\033[0m + 1\n");
												if(skill == 5)
												{
													printf("기술을 습득할 수 있습니다!\n");
													printf("습득 가능한 기술:\n");
													printf("\n");
													printf("'2연베기' (2번 베어 총 2회 공격합니다.)\n(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)\n", pw);
													printf("'강하게베기'(강하게 베어 큰 피해를 입힙니다.)\n(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)\n", pw * 2.5);

													strcpy(key2, "2연베기");
													strcpy(key3, "강하게베기");
													scanf("%s", command);
													for(o=0; o<99999; o++)
													{
														if(findKey2(command, key2))
														{
															break;
														}
														else if(findKey3(command, key3))
														{
															break;
														}
														else{
															printf("습득할 기술을 입력하세요.\n");
															scanf("%s", command);
														}
													}

													if(findKey2(command, key2))
													{
														printf("'2연베기'을(를) 습득했습니다!\n");
														two++;
													}
													else if(findKey3(command, key3))
													{
														printf("'강하게 베기'을(를) 습득했습니다!\n");
														strong++;
													}
												}

												srand(time(NULL));
												int f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey2(command, key2))
											{
												if(mp < 20)
												{
													printf("마력이 부족합니다.\n");
														continue;
												}
												mp = mp - 20;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
												
														printf("남은 공격 횟수: 1\n");
														getch();
														
												srand(time(NULL) + 4);
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey3(command, key3))
											{
												if(mp < 30)
												{
													printf("마력이 부족합니다.\n");
														continue;
												}
												mp = mp - 30;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												pw = pw * 2.5;
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														pw = pw / 2.5;
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
											}
										}
										else if(findKey2(command, key2))
										{
											printf("사용 가능 물건:\n");	
											printf("'체력물약'(체력 회복 : 50)\n");
											printf("'마력물약'(마력 회복 : 50)\n");

											strcpy(key, "체력물약");
											strcpy(key2, "마력물약");
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은 \033[0;32m%s\033[0m을(를) 사용했습니다.\n", command);//체력 물약
												hp = hp + 50;
												printf("현재 체력: %.1f\n", hp);
											}
											else if(findKey2(command, key2))
											{
												printf("당신은 \033[0;34m%s\033[0m을(를) 사용했습니다.\n", command);//마력 물약
												mp = mp + 50;
												printf("현재 마력: %d\n", mp);
											}
										}
										else if(findKey3(command, key3))
										{
											printf("당신은 도망쳤습니다.\n");
											break;
										}
										printf("\033[0;31m적 차례입니다.\033[0m\n");
						getch();
								printf("\033[0;31m적괴어\033[0m이(가) 배에 빠르게 부딪혀 공격했습니다.\n");

								srand(time(NULL)+5);
								int f = rand() % 6;
										switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = Epw * 2;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = Epw * 1.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = Epw * 0.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = Epw * 0;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
											printf("현재 내 체력: %.1f\n", hp);
						getch();
											if(hp <= 0)
											{
												printf("\033[0;31m패배했습니다...\033[0m\n");
												break;
											}
						}
				}
                else if(Edice < Mdice)
				{			
					printf("적 선공!\n");
					while(1>0)
					{
						printf("\033[0;31m적 차례입니다.\033[0m\n");
						getch();
								printf("\033[0;31m적괴어\033[0m이(가) 배에 빠르게 부딪혀 공격했습니다.\n");

								srand(time(NULL)+5);
								int f = rand() % 6;
										switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = Epw * 2;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = Epw * 1.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = Epw * 1;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = Epw * 0.5;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = Epw * 0;
																hp = hp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
											printf("현재 내 체력: %.1f\n", hp);
						getch();
											if(hp <= 0)
											{
												printf("\033[0;31m패배했습니다...\033[0m\n");
												break;
											}
						
								nomp2:		
						
							printf("\033[0;32m당신의 차례입니다.\033[0m\n");
							printf("행동을 선택하세요!\n");
							printf("\n");
							printf("'공격'\n");
							printf("'물건사용'\n");
							printf("'도주하기'\n");
							printf("\n");

									strcpy(key, "공격");
									strcpy(key2, "물건사용");
									strcpy(key3, "도주하기");
									scanf("%s", command);
									for(o=0; o<99999; o++)
									{
										if(findKey(command, key))
										{
											break;
										}
										else if(findKey2(command, key2))
										{
											break;
										}
										else if(findKey3(command, key3))
										{
											break;
										}
										else{
											printf("올바른 행동을 입력하세요.\n");
											scanf("%s", command);
										}
									}

									if(findKey(command, key))
									{
											printf("공격:\n");	
											printf("'베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 회복 : 10\033[0m)\n", pw);
											printf("\n");
											printf("기술:\n");
											if(two == 1)
											{
												printf("'2연베기'(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)", pw);
											}
											else if(strong == 1)
											{
												printf("'강하게베기'(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)", pw * 2.5);
											}
											else
											{
												printf("없음\n");
											}
											//printf("'잘공격하기'(피해량 : %d)(마력 소모 : 20)\n", pw * 2);
											printf("현재 마력: %d\n", mp);

											strcpy(key, "베기");
											if( two == 1)
											{
												strcpy(key2, "2연베기");
											}
											if(strong == 1)
											{
												strcpy(key3, "강하게베기");
											}
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else if(findKey3(command, key3))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은\033[0;34m %s \033[0m을(를) 사용했습니다.\n", command);//베기
												mp = mp + 10;
												skill ++;
												printf("베기 \033[0;35m숙련도\033[0m + 1\n");
												if(skill == 5)
												{
													printf("기술을 습득할 수 있습니다!\n");
													printf("습득 가능한 기술:\n");
													printf("\n");
													printf("'2연베기' (2번 베어 총 2회 공격합니다.)\n(\033[0;31m피해량 : %.1f x 2\033[0m)(\033[0;34m마력 소모 : 20\033[0m)\n", pw);
													printf("'강하게베기'(강하게 베어 큰 피해를 입힙니다.)\n(\033[0;31m피해량 : %.1f\033[0m)(\033[0;34m마력 소모 : 30\033[0m)\n", pw * 2.5);

													strcpy(key2, "2연베기");
													strcpy(key3, "강하게베기");
													scanf("%s", command);
													for(o=0; o<99999; o++)
													{
														if(findKey2(command, key2))
														{
															break;
														}
														else if(findKey3(command, key3))
														{
															break;
														}
														else{
															printf("습득할 기술을 입력하세요.\n");
															scanf("%s", command);
														}
													}

													if(findKey2(command, key2))
													{
														printf("'2연베기'을(를) 습득했습니다!\n");
														two++;
													}
													else if(findKey3(command, key3))
													{
														printf("'강하게 베기'을(를) 습득했습니다!\n");
														strong++;
													}
												}

												srand(time(NULL));
												int f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey2(command, key2))
											{
												if(mp < 20)
												{
													printf("마력이 부족합니다.\n");
													goto nomp2;
												}
												mp = mp - 20;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
												
														printf("남은 공격 횟수: 1\n");
														getch();
														
												srand(time(NULL) + 4);
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
														printf("\n");
											}
											else if(findKey3(command, key3))
											{
												if(mp < 30)
												{
													printf("마력이 부족합니다.\n");
													goto nomp2;
												}
												mp = mp - 30;
												printf("당신은 \033[0;34m %s \033[0m을(를) 사용했습니다.(남은 마력: %d)\n", command, mp);//스킬
												pw = pw * 2.5;
												srand(time(NULL));
												f = rand() % 6; 
												switch (f)
												{
													case 0:	
													{
														printf("주사위 : 1 (\033[0;31m치명적인 공격!\033[0m)\n");
														dice = 1;
														break;
													}
													case 1:
													{
														printf("주사위 : 2(\033[0;31m강한\033[0m 공격)\n");
														dice = 2;
														break;
													}
													case 2:
													{
														printf("주사위 : 3(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 3;
														break;
													}
													case 3:
													{
														printf("주사위 : 4(\033[0;32m일반적인 공격\033[0m)\n");
														dice = 4;
														break;
													}
													case 4:
													{
														printf("주사위 : 5(어설픈 공격)\n");
														dice = 5;
														break;
													}
													case 5:
													{
														printf("주사위 : 6(빗나감!)\n");
														dice = 6;
														break;
													}
													default:printf("x\n"); break;
												}
															if(dice == 1)
															{
																total = pw * 2;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 2)
															{
																total = pw * 1.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 3)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 4)
															{
																total = pw * 1;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 5)
															{
																total = pw * 0.5;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
															else if(dice == 6)
															{
																total = pw * 0;
																Ehp = Ehp - total;
																printf("(피해량: \033[0;34m%.1f\033[0m)\n", total);
															}
														printf("현재 적 체력: \033[0;31m%.1f\033[0m\n", Ehp);
														pw = pw / 2.5;
														if(Ehp <= 0)
														{
															printf("적을 처치했습니다!\n");
															printf("획득: 혼전 x 15, 골드 x 50, 붉은 비늘 x 2\n");
															redscale = redscale + 2;
															if(redscale == 4)
															{
																goto comple;
															}
															break;
														}
											}
										}
										else if(findKey2(command, key2))
										{
											printf("사용 가능 물건:\n");	
											printf("'체력물약'(체력 회복 : 50)\n");
											printf("'마력물약'(마력 회복 : 50)\n");

											strcpy(key, "체력물약");
											strcpy(key2, "마력물약");
											scanf("%s", command);
											for(o=0; o<99999; o++)
											{
												if(findKey(command, key))
												{
													break;
												}
												else if(findKey2(command, key2))
												{
													break;
												}
												else{
													printf("올바른 행동을 입력하세요.\n");
													scanf("%s", command);
												}
											}
											if(findKey(command, key))
											{
												printf("당신은 \033[0;32m%s\033[0m을(를) 사용했습니다.\n", command);//체력 물약
												hp = hp + 50;
												printf("현재 체력: %.1f\n", hp);
											}
											else if(findKey2(command, key2))
											{
												printf("당신은 \033[0;34m%s\033[0m을(를) 사용했습니다.\n", command);//마력 물약
												mp = mp + 50;
												printf("현재 마력: %d\n", mp);
											}
										}
										else if(findKey3(command, key3))
										{
											printf("당신은 도망쳤습니다.\n");
											break;
										}
					
				}
				}
		}
	
			comple:
				
				printf("'마을'로 돌아가세요.\n");
				
				scanf("%s", command);
				strcpy(key, "마을");
				for(o=0; o<99999; o++)
				{
					if(findKey(command, key))
					{
						break;
					}
					else{
						printf("'마을'로 이동하세요.\n");
						scanf("%s", command);
					}
				}

					printf("마을로 이동합니다...\n");
						printf("이동중");

					for(timer=0; timer<3; timer++)
					{
						printf(".");
						sleep(1);
					}
			printf("\n");
			printf("\n");
			printf("\n");
	
		printf("마을로 돌아왔습니다...\n");
	printf("당신은 노인에게 다가가, 붉은 비늘을 보여주며 바다에서 있었던 일을 알립니다.\n");
	getch();
	printf("노인: 이렇게 봐도 믿기지 않는군...\n");
	getch();
	printf("      우리 마을에 이런 재앙이 닥칠 줄이야...\n");
	getch();
	printf("      이 문제를 해결해 줄 수 있는가?\n");
	getch();
	printf("      부탁이네, 해결해 준다면 우리 마을 최고의 명검을 주겠네!\n");
	getch();
	
	printf("\n");
	
	
		while(1 > 0)
		{
				printf("노인의 의뢰를 받겠습니까?\n");
								printf("(\033[0;32mY\033[0m / \033[0;31mN\033[0m)\n");
								 scanf("%s", command);
										strcpy(key, "y");
										strcpy(key2, "n");
										for(o=0; o<99999; o++)
										{
											if(findKey(command, key))
											{
												break;
											}
											else if(findKey2(command, key2))
											{
												break;
											}
											else{
												printf("y 혹은 n을 입력하세요.\n");
												scanf("%s", command);
											}
										}
										if(findKey(command, key))
										{
											quest++;
											printf("의뢰를 수주했습니다.\n");	
											printf("노인: 정말 고맙네!\n");
											break;
										}
										else if(findKey2(command, key2))
										{
											printf("의뢰를 거절했습니다.\n");
											printf("\n");
											printf("노인: 혹시 생각이 바뀌거든 다시 말해주게...\n");
											printf("\n");
										}
			printf("당신의 마음속 양심이 의뢰를 받으라 재촉합니다...\n");
			printf("\n");
		}
	
	
	
	
	
	
	/*
                printf("커다란 물고기가 배를 들이 받았습니다.\n");
	getch();

                    printf("배 내구도(체력) : %d\n", hp);
	getch();
                    printf("#$@$이(가) 배에 빠르게 부딪혀 공격했습니다.\n");

		srand(time(NULL));
		int f = rand() % 6; 
		switch (f)
		{
			case 0:	
			{
				printf("주사위 : 1 (치명적인 공격!)\n");
				dice = 1;
				break;
			}
			case 1:
			{
				printf("주사위 : 2(강한 공격)\n");
				dice = 2;
				break;
			}
			case 2:
			{
				printf("주사위 : 3(일반적인 공격)\n");
				dice = 3;
				break;
			}
			case 3:
			{
				printf("주사위 : 4(일반적인 공격)\n");
				dice = 4;
				break;
			}
			case 4:
			{
				printf("주사위 : 5(어설픈 공격)\n");
				dice = 5;
				break;
			}
			case 5:
			{
				printf("주사위 : 6(빗나감!)\n");
				dice = 6;
				break;
			}
			default:printf("x\n"); break;
			}
	getch();	
					if(dice == 1)
					{
						total = Epw * 2;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
                    else if(dice == 2)
					{
						total = Epw * 1.5;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
					else if(dice == 3)
					{
						total = Epw * 1;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
					else if(dice == 4)
					{
						total = Epw * 1;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
					else if(dice == 5)
					{
						total = Epw * 0.5;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
					else if(dice == 6)
					{
						total = Epw * 0;
						hp = hp - total;
						printf("(피해량: %d)\n", total);
					}
                    printf("현재 배 내구도: %d\n",hp);
			*/
			

	
	
	
	
	
	
	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	/*
                    printf("의뢰를 받으면 다른 의뢰를 받을 수 없습니다.\n");
                    printf("지금 의뢰를 수행하겠습니까? (Y / N)\n");
                     scanf("%s", command);
                            strcpy(key, "y");
                            strcpy(key2, "n");
                            for(int o=0; o<99999; o++)
							{
								if(findKey(command, key))
								{
									break;
								}
								else if(findKey2(command, key2))
								{
									break;
								}
								else{
									printf("y 혹은 n을 눌러주세요.\n");
									scanf("%s", command);
								}
							}
                            if(findKey(command, key))
							{
                                quest++;
                                printf("의뢰를 수주했습니다.\n");	
							}
							else if(findKey2(command, key2))
							{
								printf("의뢰를 거절했습니다.\n");
							}
        */
                    	getch();
            
            
	}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: