#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();
}
To embed this project on your website, copy the following code and paste it into your website's HTML: