오늘은 문제만 만들었는데 처음 강의에서 시연해주는 완성된 게임을 보고 강의 답 안보고 만들려니까

좀 힘들었습니다. 그래도 시행착오 격어서 이제는 처음 코드 짤 때 무작정 비쥬얼 스튜디오에 타자치면서 시작안하고

메모장에 이런 구성요소들이 필요하고, 이렇게 이렇게 짜야겠다고 미리 전체적으로 적으면서 생각하고 시작하니까

큰 문제는 없었습니다.



#include <stdio.h>

#include <time.h>

#include <windows.h>


int arr[6][5];

int realarr[6][5];

void showc();

int numofchar;

void realc();

void setarr();

int fnum = 1;

void shownum(num1, num2);

void checknum(num1, num2);



int main(void)

{

    srand(time(NULL));

    printf("정답을 3초간 보여준 후 게임이 시작됩니다.\n준비가 되셧으면 아무 키나 입력하세요.");

    realc();

    setarr();

    int f;

    scanf_s("%d", &f);


    for (int a = 0; a < 6; a++)

    {

        for (int b = 0; b < 5; b++)

        {

            printf(" %3d ", realarr[a][b]);

        }

        printf("\n\n");

    }

    Sleep(3000);

    system("cls");

    

    while (1)

    {

        int num1 = 0;

        int num2 = 0;

        int num3 = 0;

        int num4 = 0;


        showc();

        printf("\n숫자를 확인하려면 숫자를 입력하세요.\n숫자의 답은 3초간 보입니다!");

        /*printf("\n첫번째 칸의  숫자를 입력하세요:");

        scanf_s("%d", &num1);

        printf("\n첫번째 칸의 두번째 숫자를 입력하세요:");

        scanf_s("%d", &num2);

        printf("\n두번째 칸의 첫 숫자를 입력하세요:");

        scanf_s("%d", &num3);

        printf("\n두번째 칸의 두번째 숫자를 입력하세요:");

        scanf_s("%d", &num4);*/


        /*printf("%d%d번의 숫자는:%d입니다.", num1, num2, realarr[num1][num2]);

        printf("%d%d번의 숫자는:%d입니다.", num3, num4, realarr[num3][num4]);*/


        printf("\n첫번째 숫자를 입력하세요:");

        scanf_s("%d", &num1);

        printf("\n두번째 숫자를 입력하세요:");

        scanf_s("%d", &num2);

        shownum(num1,num2);

        checknum(num1, num2);



        



        if (*(realarr+num1+num2) == *(realarr+num3+num4))

        {

            printf("두개의 숫자가 같습니다!");

            arr[num1][num2] = realarr[num1][num2];

        }

        Sleep(3000);

        system("cls");

    }

    



    


    return 0;

}


void shownum(num1, num2)

{

    int d, e;

    for (int a = 0; a < 6; a++)

    {

        for (int b = 0; b < 5; b++)

        {

            if (num1 == arr[a][b])

            {

                printf("첫번째 숫자는 %d 입니다.", realarr[a][b]);

            }

            if (num2 == arr[a][b])

            {

                printf("두번째 숫자는 %d 입니다.", realarr[a][b]);

            }

        }

    }

}


void checknum(num1, num2)

{

    int d, e;

    for (int a = 0; a < 6; a++)

    {

        for (int b = 0; b < 5; b++)

        {

            if (num1 == realarr[a][b] && num2 == realarr[a][b])

            {

                printf("두 숫자가 같습니다!");

                arr[a][b] = realarr[a][b];

                //여기서부터 시작

                //포문을 돌려서 두개의 숫자가 같으면

                //위의 두개 문장수행

            }

        }

    }

}

    


void setarr()

{

    for (int a = 0; a < 6; a++)

    {

        for (int b = 0; b < 5; b++)

        {

            arr[a][b]= fnum++;

        }

    }

}


void showc()

{

    for (int a = 0; a < 6; a++)

    {

        for (int b = 0; b < 5; b++)

        {

            if (arr[a][b] < 10)

            {

                printf("  %d번 ", arr[a][b]);

            }

            else

            {

                printf(" %d번 ", arr[a][b]);

            }

        }

        printf("\n\n");

    }

}


void realc()

{

    for (int i = 1; i < 16; i++)

    {

        int a = rand() % 6;

        int b = rand() % 5;


        if (realarr[a][b] == 0)

        {

            realarr[a][b] = i;

        }

        else

        {

            i--;

        }

    }

    for (int i = 1; i < 16; i++)

    {


        int a = rand() % 6;

        int b = rand() % 5;


        if (realarr[a][b] == 0)

        {

            realarr[a][b] = i;

        }

        else

        {

            i--;

        }

    }

}