C언어 rpg 질문..
고양이
전체 소스 입니다컴파일은 문제 없이 잘되지만실행하면
printf([달팽이에게 %d의 데미지를 주었습니다.]\n, Attack+Str); Sleep(1000); printf([달팽이에게 %d의 피해를 입었습니다.]\n, MobAttack-Dex); Sleep(1000); system(cls);
이 부분까지 실행되고 끝나네요뭐가 문제일까요
혹시 몰라서 몹 데미지 닳았는지 확인해보니 닳아 있네요 ㅠ 그럼 확실히 값이 들어갔단 소리인데..뭐가 문제일까요??고수님들 알려주십쇼..
소스 갈게요
#include stdio.h#include stdlib.h#include conio.h#include Windows.h
int main(void){ int Choose;int A=1;int B=2;char C;char D;int Attack;int MobHp;int MobmHp;int MobAttack;int Str;int Dex;int Hp;int MHp;int Mp;int Exp;int GetExp;int Gold;int GetGold;int Job;int Sp;int Level;int Potion;int b;int f;
struct Play{ char P_Name[50];};
struct Play Player;printf(1.시작하기 2.끝내기 : );scanf_s(%d, &A);
switch(A){case 1: system(cls); break;case 2: exit(0);default: exit(0);}
printf(사용할 플레이어의 이름을 적어주세요: );fflush(stdin);scanf(%s, &Player.P_Name);system(cls);
printf(%s 님 안녕하세요? 여기는 마을입니다 \n, &Player.P_Name);printf(1.사냥 2.상점 3.게임 끝내기: );scanf(%d, &Choose);system(cls);
/* if(Choose == 1){ printf(NPC:사냥할 곳을 선택하세요.\n1.[달팽이]\n2.[파란달팽이]\n3.[빨간달팽이]\n4.[슬라임]\n: ); scanf(%d, &Choose); system(cls);} */if(Choose == 1){ Level=1; Hp=100; MHp=100; Str=10; Dex=10; Exp=0; Gold=1000; Potion=0; Job=0; Potion=0; b=1; f=0;
MobHp=100; MobmHp=100; //레벨 1 달팽이 printf([달팽이 체력 : %d / %d]\n, MobHp, MobmHp); printf([나의 체력 : %d / %d]\n, Hp, MHp); printf([포션 개수 : %d]\n, Potion); printf([Lv1]달팽이 출현!\n); printf(1.공격 2.도망 3.포션\n: ); scanf(%d, &Choose); system(cls);
if(Choose == 1) { printf([Lv1]달팽이에게 공격을 가합니다\n); Sleep(2000); Attack = rand() % Str+1; MobHp -= Attack + Str; MobAttack = rand() % 30+1; if(MobAttack-Dex = 0) { Hp -= MobAttack - Dex; }
printf([달팽이에게 %d의 데미지를 주었습니다.]\n, Attack+Str); Sleep(1000); printf([달팽이에게 %d의 피해를 입었습니다.]\n, MobAttack-Dex); Sleep(1000); system(cls); } if(Choose == 2) { system(cls); Sleep(2000); printf([달팽이에게서 도망쳤다]\n); Sleep(2000); printf([잠시만 기다려주세요]\n); Sleep(5000); system(cls); }
if(Choose == 3) { if(Potion = 1) { system(cls); printf([포션을 사용하였습니다]\n);
if(Level == 1) { Hp = 100; MHp = 100; } if(Level == 2) { Hp = 150; MHp = 150; }
if(Level == 3) { Hp = 200; MHp = 200; }
if(Level == 4) { Hp = 300; MHp = 300; }
if(Level == 5) { Hp = 450; MHp = 450; }
if(Level == 6) { Hp = 650; MHp = 650; } if(Level == 7) { Hp = 900; MHp = 900; }
if(Level == 8) { Hp = 1200; MHp = 1200; }
if(Level == 9) { Hp = 1600; MHp = 1600; }
if(Level == 10) { Hp = 2000; MHp = 2000; } else { system(cls); printf([포션이 없습니다.]\n); system(cls); } } (MobHp = 0) { system(cls); printf([승리하였습니다]); GetGold = rand() % 40+1; GetExp = rand() % 40+1; printf([골드 + %d / 경험치 + %d 획득]\n,GetGold, GetExp); Gold += GetGold; Exp += GetExp; system(cls); }
if(Hp = 0) { system(cls); printf([당신은 죽었습니다]); Sleep(2000); system(cls); } } }
/*if(Choose == 2){ printf([Lv2]파란달팽이 출현!\n); printf(1.공격 2.도망\n: ); scanf(%d, &Choose); system(cls);if(Choose == 2){ printf(NPC:상점에 오신 것을 환경합니다.\n1.[HP포션-100]\n2.[MP포션-50]\n3.[주문서(개발중)]\n: );} */system(pause);return 0;}
-
알프레드
으.. 객체지향이면 정리편하실텐데
-
맨마루
네 근데 1이 항상 참이여서 그런지 계속 죽어도 공격할 수 있네요 그래서 좀 응용했더니 죽이고 빠져나온후 승리 뜨고 경험치 받고 하네요 ㅎ
그런데.. 상점 구현 하려니까 또 막힙니다
if(Choose == 2) {
\t\t AgainShop:
\t\t system(\cls\);
\t\t printf(\NPC:상점에 오신 것을 환경합니다.\\n1.[HP포션-\\$50]\\n2.[MP포션-\\$25]\\n3.[주문서(개발중)]\\n: \);
\t\ -
붕붕
printf(\[달팽이에게 %d의 데미지를 주었습니다.]\\n\