회원가입 | IDPW찾기

페이스북 로그인

전체알림
* 알림은 최근 일주일 내역만 보여집니다.

2022-02-21 23:18:34

데스락 조합 프로그램

매번 데스락 조합짜느라 10~20분씩 쓰다 보니 답답하기도 하고, 한번씩 실수해서 조합 틀기도 하고.. 그래서 만들어왔습니다!

이 프로그램은 용/속성/타입을 입력하면 알아서 조합을 짜주는 프로그램입니다.

이 프로그램은 c++언어로 작성되었습니다.

막 사용하시다 오류가 날 수도 있으니 아래 글을 읽어주시기 바랍니다.



사용법

1. 아래 링크를 타고 파일 하나를 다운받는다.

2. 코드블럭이나 비주얼 스튜디오를 다운받는다.(다운법은 인터넷에 검색하면 바로 나옵니다.)

 - 코드블럭으로 작성한 문서이므로 코드블럭을 사용하실 것을 추천드립니다.

3. 둘 중 자신이 사용하는 프로그램으로 다운받은 파일을 실행시킨다.

4. 밑 주의사항을 확인하고 편안하게 데스락을 즐긴다.



​주의사항

​0. 모바일은 지원되지 않습니다. PC로 실행바랍니다.

​1. 비주얼 스튜디오를 사용하시는 경우에는 제가 아래에 올려둔 소스코드를 복붙해가시면 됩니다.

 - 비주얼 스튜디오로 c++ 문서를 실행시키는 방법은 인터넷에 잘 나와있을 겁니다.

2. 타입/속성을 작성하실 때 글자 하나라도 다르게 적으시면 안됩니다.

타입 : 체력 체공 체방 방어 공격 공방 중립

속성 : 빛 어둠 땅 물 불 바람 여명 황혼 악몽 

ex) 체(x) 체력(o) 

3. 아직 완벽하지 않아 잔버그가 발생할 수 있으니 댓글로 문의해주셔도 됩니다.

4. 프로그램을 실행해서 모든 강림들을 다 적고 5초이상 기다렸는데 조합이 안나오는 경우

- 조합이 안 짜지는 경우일 확률이 높습니다.

- 강림이 너무 많아 시간이 오래 걸리는 경우일 수 있는데 이는 해결 중에 있습니다.(시간 줄이는 중)

5. 강림 입력은 강림이름/속성/타입으로 입력해주시기 바랍니다.

ex) 아르고 빛 공격





안되는게 있으시면 댓글로 남겨주심 친절하게 알려드립니다!






파일 받으러 가는 링크

https://drive.google.com/file/d/13MBsnewIY0TO6cssBxEJQMnywLTqz_gv/view?usp=sharing


소스 코드(비주얼 스튜디오용 - 복붙해가시면 됩니다.)

#include <bits/stdc++.h>        //데스락 조합

using namespace std;

int arr[6]={1000,2,2,2,2,3},Arr[6]={1000,2,2,2,3},n[5];

int A[150][3],B[150][3],C[150][3],D[150][3];

int res[5][5];

int re[5][5];

char *wind="바람",*darkness="어둠",*light="빛",*yeomeong="여명",*earth="땅";

char *health="체력",*gongbang="공방",*def="방어",*att="공격";

struct K

{

    char x[150],y[150],z[150];

};

K a[150],b[150],c[150],d[150];

void dfs(int p, int q, int v)

{

    int i;

    if(q==5)

    {

        for(i=1;i<=5;i++)

        {

            if(arr[i]>0)

                break;

        }

        if(i==6)

        {

            for(i=1;i<=4;i++)

            {

                if(Arr[i]>0)

                    break;

            }

            if(i==5)

            {

                printf(" ============================== ");

                for(i=1;i<=4;i++)

                    for(int j=1;j<=3;j++)

                        re[i][j]=res[i][j];

                printf("A님 : ");

                for(i=1;i<=3;i++)

                    printf("%s ",a[re[1][i]].x);

                printf(" ");

                printf("B님 : ");

                for(i=1;i<=3;i++)

                    printf("%s ",b[re[2][i]].x);

                printf(" ");

                printf("C님 : ");

                for(i=1;i<=3;i++)

                    printf("%s ",c[re[3][i]].x);

                printf(" ");

                printf("D님 : ");

                for(i=1;i<=3;i++)

                    printf("%s ",d[re[4][i]].x);

                exit(0);

            }

        }

        return;

    }

    if(p==4)

        dfs(1,q+1,1);

    if(q==1)

    {

        for(i=v;i<=n[1];i++)

        {

            if(arr[A[i][1]]>0 && Arr[A[i][2]]>0)

            {

                res[1][p]=i;

                arr[A[i][1]]--;

                Arr[A[i][2]]--;

                dfs(p+1,q,i+1);

                res[1][p]=0;

                arr[A[i][1]]++;

                Arr[A[i][2]]++;

            }

        }

    }

    if(q==2)

    {

        for(i=v;i<=n[2];i++)

        {

            if(arr[B[i][1]]>0 && Arr[B[i][2]]>0)

            {

                res[2][p]=i;

                arr[B[i][1]]--;

                Arr[B[i][2]]--;

                dfs(p+1,q,i+1);

                res[2][p]=0;

                arr[B[i][1]]++;

                Arr[B[i][2]]++;

            }

        }

    }

    if(q==3)

    {

        for(i=v;i<=n[3];i++)

        {

            if(arr[C[i][1]]>0 && Arr[C[i][2]]>0)

            {

                res[3][p]=i;

                arr[C[i][1]]--;

                Arr[C[i][2]]--;

                dfs(p+1,q,i+1);

                res[3][p]=0;

                arr[C[i][1]]++;

                Arr[C[i][2]]++;

            }

        }

    }

    if(q==4)

    {

        for(i=v;i<=n[4];i++)

        {

            if(arr[D[i][1]]>0 && Arr[D[i][2]]>0)

            {

                res[4][p]=i;

                arr[D[i][1]]--;

                Arr[D[i][2]]--;

                dfs(p+1,q,i+1);

                res[4][p]=0;

                arr[D[i][1]]++;

                Arr[D[i][2]]++;

            }

        }

    }

}

int main()

{

    int i;

    printf("속성, 타입은 글자하나라도 다르게 쓰시면 안됩니다. ");

    printf("속성 : 땅 물 불 바람 빛 어둠 여명 황혼 악몽 ");

    printf("타입 : 체력 공방 방어 공격 체방 체공 중립 ");

    printf("============================== ");

    printf("A님의 강림수를 입력해주세요. ");

    scanf("%d",&n[1]);

    printf("강림들을 입력해주세요. Ex)아르고 빛 공격 ");

    for(i=1;i<=n[1];i++)

    {

        scanf("%s %s %s",a[i].x,a[i].y,a[i].z);

        if(strcmp(a[i].y,wind)==0)

            A[i][1]=1;

        else if(strcmp(a[i].y,darkness)==0)

            A[i][1]=2;

        else if(strcmp(a[i].y,yeomeong)==0)

            A[i][1]=3;

        else if(strcmp(a[i].y,earth)==0)

            A[i][1]=4;

        else if(strcmp(a[i].y,light)==0)

            A[i][1]=5;

        if(strcmp(a[i].z,health)==0)

            A[i][2]=1;

        else if(strcmp(a[i].z,gongbang)==0)

            A[i][2]=2;

        else if(strcmp(a[i].z,def)==0)

            A[i][2]=3;

        else if(strcmp(a[i].z,att)==0)

            A[i][2]=4;

    }


    printf("B님의 강림수를 입력해주세요. ");

    scanf("%d",&n[2]);

    printf("강림들을 입력해주세요. Ex)아르고 빛 공격 ");

    for(i=1;i<=n[2];i++)

    {

        scanf("%s %s %s",b[i].x,b[i].y,b[i].z);

        if(strcmp(b[i].y,wind)==0)

            B[i][1]=1;

        else if(strcmp(b[i].y,darkness)==0)

            B[i][1]=2;

        else if(strcmp(b[i].y,yeomeong)==0)

            B[i][1]=3;

        else if(strcmp(b[i].y,earth)==0)

            B[i][1]=4;

        else if(strcmp(b[i].y,light)==0)

            B[i][1]=5;

        if(strcmp(b[i].z,health)==0)

            B[i][2]=1;

        else if(strcmp(b[i].z,gongbang)==0)

            B[i][2]=2;

        else if(strcmp(b[i].z,def)==0)

            B[i][2]=3;

        else if(strcmp(b[i].z,att)==0)

            B[i][2]=4;

    }


    printf("C님의 강림수를 입력해주세요. ");

    scanf("%d",&n[3]);

    printf("강림들을 입력해주세요. Ex)아르고 빛 공격 ");

    for(i=1;i<=n[3];i++)

    {

        scanf("%s %s %s",c[i].x,c[i].y,c[i].z);

        if(strcmp(c[i].y,wind)==0)

            C[i][1]=1;

        else if(strcmp(c[i].y,darkness)==0)

            C[i][1]=2;

        else if(strcmp(c[i].y,yeomeong)==0)

            C[i][1]=3;

        else if(strcmp(c[i].y,earth)==0)

            C[i][1]=4;

        else if(strcmp(c[i].y,light)==0)

            C[i][1]=5;

        if(strcmp(c[i].z,health)==0)

            C[i][2]=1;

        else if(strcmp(c[i].z,gongbang)==0)

            C[i][2]=2;

        else if(strcmp(c[i].z,def)==0)

            C[i][2]=3;

        else if(strcmp(c[i].z,att)==0)

            C[i][2]=4;

    }


    printf("D님의 강림수를 입력해주세요. ");

    scanf("%d",&n[4]);

    printf("강림들을 입력해주세요. Ex)아르고 빛 공격 ");

    for(i=1;i<=n[4];i++)

    {

        scanf("%s %s %s",d[i].x,d[i].y,d[i].z);

        if(strcmp(d[i].y,wind)==0)

            D[i][1]=1;

        else if(strcmp(d[i].y,darkness)==0)

            D[i][1]=2;

        else if(strcmp(d[i].y,yeomeong)==0)

            D[i][1]=3;

        else if(strcmp(d[i].y,earth)==0)

            D[i][1]=4;

        else if(strcmp(d[i].y,light)==0)

            D[i][1]=5;

        if(strcmp(d[i].z,health)==0)

            D[i][2]=1;

        else if(strcmp(d[i].z,gongbang)==0)

            D[i][2]=2;

        else if(strcmp(d[i].z,def)==0)

            D[i][2]=3;

        else if(strcmp(d[i].z,att)==0)

            D[i][2]=4;

    }


    dfs(1,1,1);


    for(i=1;i<=3;i++)

        printf("%s ",a[re[1][i]].x);

    printf(" ");

    for(i=1;i<=3;i++)

        printf("%s ",b[re[2][i]].x);

    printf(" ");

    for(i=1;i<=3;i++)

        printf("%s ",c[re[3][i]].x);

    printf(" ");

    for(i=1;i<=3;i++)

        printf("%s ",d[re[4][i]].x);

}

 


댓글[10]

등록하기

사진 등록하기

오늘 하루 보지 않기
닫기