Coding Challenge

[소스공유] C언어로 만든 지뢰찾기

인생마린 2017. 5. 24. 20:02
반응형

제가 대학교 1학년때 만들었던 지뢰찾기네요~ 기억이 새록새록

그때 이거만들고 엄청 좋아했었는데 ㅎㅎ


복붙 no! 직접써가며 코드를 이해해보아요~ 실력이 금방늘꺼에요



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
 
void draw(int a[30][30])
{
    for (int i = 0; i < 30; i++)
    {
        for (int j = 0; j < 30; j++)
        {
            if (a[i][j] == 0)//아직안열림
                printf("■");
            else if (a[i][j] == 1)//지뢰임
                printf("※");
            else if (a[i][j] == 2)//맞음
                printf("●");
        }
        printf("\n");
    }
}
 
int main()
{
    int map[30][30];
    int hide[30][30];
    srand((unsigned)time(NULL));
    int a, b, c, d, k;
    for (int i = 0; i < 30; i++)//배열 모든값 0으로 해줌
    {
        for (int j = 0; j < 30; j++)
        {
            map[i][j] = 0;
            hide[i][j] = 0;
        }
    }
    printf("생성할 지뢰개수를 입력해주세요(30x30)\n");
    scanf_s("%d"&k);
    for (int i = 0; i < k; i++)//지뢰생성
    {
 
        while (1)
        {
            a = rand() % 30;
            b = rand() % 30;
            if (map[a][b] == 1)
                ;
            else
            {
                map[a][b] = 1;
                break;
            }
        }
 
        map[a][b] = 1;
 
    }
    while (1)
    {
        draw(hide);
        printf("x좌표입력: ");
        scanf_s("%d"&c);
        printf("y좌표입력: ");
        scanf_s("%d"&d);
 
        c--;
        d--;
 
        if (c >= 30 || d >= 30 || c < 0 || d < 0)
        {
            printf("범위안의 숫자를입력해주세요\n");
            Sleep(1000);
        }
        else if (map[c][d] == 1)
        {
            hide[c][d] = 1;
            system("cls");
            draw(hide);
            printf("꽝입니다~ㅠㅠ\n");
            Sleep(2000);
            break;
        }
        else if (hide[c][d] == 2)
        {
            printf("이미 방문했습니다^^\n");
        }
        else if (map[c][d] == 0)
        {
            printf("맞았습니다~^^\n");
            hide[c][d] = 2;
        }
        
        Sleep(1000);
        system("cls");
    }
    printf("지뢰위치\n");
    draw(map);//게임 끝난후 지뢰위치 보여줌
}


반응형