프로그래밍

 3198, 1/160 회원가입  로그인  
   rjsgnl5512
   [C언어]심심풀이 게임인데요...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3367 [복사]


#include<stdio.h>
#include<string.h>
int main()
{
        char name[100];
        int hp,atk,menual,atknum,minushp,i;
        printf(" \n\n 제거할 대상의 이름을 입력하시오 : ");
        scanf("%s",name);
        printf("\n 대상의 이름은 '%s' 입니다.",name);
        printf("\n\n 지금부터 그 대상을 제거하겠습니다.");
        printf("\n\n 다소 잔인한 언어가 나올수 있으니, 비위가 약하시다면, 프로그램을 종료하시기 바랍 니다.\n\n");

        printf(" 지금부터 시작하죠...\n\n");

        printf(" 대상의 hp를 입력해주세요 : ");
        scanf("%d",&hp);
        printf("\n\n %s 의 hp 는 %d 입니다.",name,hp);

        printf("\n\n 당신의 공격할 횟수를 정해주십시오 : ");
        scanf("%d",&atk);

        printf("\n\n ----------------------------\n 당신이 제거할 대상의 이름 : %s \n----------------------------\n 당신이 제거할 대상의 hp : %d\n----------------------------\n 당신의 공격 횟수 : %d 회",name,hp,atk);

        printf("\n\n\n -----------메뉴얼을 보려면 1번키를 누른뒤, 엔터를 입력하십시오--------------\n\n\n");

        printf("\n\n\n -----------------게임을 시작하려면, 2번키를 누르십시오----------------------\n\n\n");

        printf(" 선택 : ");
        scanf("%d",&menual);
        printf("(엔터입력 필수)\n\n");
        if(menual == 1)
        {
                printf(" 안녕하십니까, 당신에게 '괴롭히기 게임'을 안내할 도우미입니다.\n\n");
                printf(" 우선 공격에 대해 알려드리겠습니다.\n\n");
                printf(" 처음에 설정한 당신의 공격할 횟수가 0이 될때까지, 제거할 대상의 hp 를 모두 깍으  면\n\n");
                printf(" 당신이 Win , 하지만 hp를zero 로 만들지 못하고 공격 횟수를 모두 소비했을때 당신  이 Lose 합니다.\n\n");
                printf(" 공격법은 다양합니다. 1~30까지의 숫자를 입력하고 엔터를 누르면 그에 맞는 공격이  시전됩니다.\n\n");
                printf(" 백문이 불여일견, 이제 게임의 세계로 들어가보죠.\n\n");
        }
        else if(menual == 2)
        {
                for(i=0;i<=atk;i++)
                {
                        printf(" 공격 코드 : ");
                        scanf("%d",&atknum);
                        if(atknum == 1)

                                minushp = hp-50;
                        printf(" '%s' 에게 급소차기를 시전하여 %f 의 데미지를 줬다!\n '%s'의 hp : %d \n 남은 공격 횟수 : %d",name,50,name,minushp,atk);



                }

        }
}

인데요...

저 아래의

Q1.for(i=0;i<=atk;i++) 이걸 이용해서, 공격횟수를 지정한 만큼 공격을 하게하고싶은데 오류가나더라구요...

Q2.메뉴얼로 가겠습니까? 했을때 1번을 누르면 메뉴얼이 뜨잖아요? 그다음에 바로 2번을 입력했을떄의, 게임으로 넘어가게 할수없나요??

Q3.저 중첩 if 문 안에다가 또 한번 if를 넣어서 'hp가 0이 됬을때, 죽는다는 조건을 만드는것과, 공격횟수가 0인데 hp가 양수이다, 그럴때 게임을 끝낸다' 를 프로그래미하고싶은데 어찌해야할까요...

도와주세요 해쿨분들!

  Hit : 6033     Date : 2012/03/30 12:25



    
dbman Q1. 변수를 초기화 시켜보세요, 구체적인 오류를 모르겠네요.

Q2. 1번 매뉴얼 출력후 바로 for문 작성하시면 됩니다.

if(menual == 1)
{
printf(" 안녕하십니까, 당신에게 '괴롭히기 게임'을 안내할 도우미입니다.\n\n");
printf(" 우선 공격에 대해 알려드리겠습니다.\n\n");
printf(" 처음에 설정한 당신의 공격할 횟수가 0이 될때까지, 제거할 대상의 hp 를 모두 깍으 면\n\n");
printf(" 당신이 Win , 하지만 hp를zero 로 만들지 못하고 공격 횟수를 모두 소비했을때 당신 이 Lose 합니다.\n\n");
printf(" 공격법은 다양합니다. 1~30까지의 숫자를 입력하고 엔터를 누르면 그에 맞는 공격이 시전됩니다.\n\n");
printf(" 백문이 불여일견, 이제 게임의 세계로 들어가보죠.\n\n");
printf("------------------------------------------------------\n");

for(i=0;i<=atk;i++)
{
printf(" 공격 코드 : ");
scanf("%d",&atknum);
if(atknum == 1)

minushp = hp-50;
printf(" '%s' 에게 급소차기를 시전하여 %f 의 데미지를 줬다!\n '%s'의 hp : %d \n 남은 공격 횟수 : %d",name,50,name,minushp,atk);

}

}
2012/03/30