리그캣의 개발놀이터

[c언어]미로 빠져나오기 본문

프로그래밍 언어/C

[c언어]미로 빠져나오기

리그캣 2018. 1. 21. 18:07

[c언어]미로 빠져나오기


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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <stdio.h>   
#include <windows.h>   
//#include <conio.h>   
 
#define UP 72   
#define DOWN 80   
#define LEFT 75   
#define RIGHT 77   
 
int x,y;   
 
int map1[20][20]=   
{   
    { 1111111111111111111 },   
    { 0000000000000000001 },   
    { 1111111111111111101 },   
    { 1000000000000000001 },   
    { 1011111111111111111 },   
    { 1000000000000000001 },   
    { 1111111111111111101 },   
    { 1000000000000000001 },   
    { 1011111111111111111 },   
    { 1000000000000000001 },   
    { 1111111111111111101 },   
    { 1000000000000000001 },   
    { 1011111111111111111 },   
    { 1000000000000000001 },   
    { 1111111111111111101 },   
    { 1000000000000000001 },   
    { 1011111111111111111 },   
    { 1000000000000000000 },   
    { 1111111111111111111 }    
};   
 
void gotoxy(int x, int y)    
{   
    COORD XY = {x, y};   
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), XY);   
}   
 
void move()   
{   
    int input;   
    input=getch();   
    
    switch(input)   
    {   
    case RIGHT :   
        if(x<40)   
        {   
            if(map1[y][(x/2)+1== 0)   
            {   
                gotoxy(x,y);   
                printf(" ");   
                x+=2;   
                gotoxy(x,y);   
                printf("●");   
            }   
        }   
        break;   
        
    case LEFT :   
        if(x>1)   
        {   
            if(map1[y][(x/2)-1== 0)   
            {   
                gotoxy(x,y);   
                printf(" ");   
                x-=2;   
                gotoxy(x,y);   
                printf("●");   
            }   
        }   
        break;   
        
    case UP :   
        if(y>1)   
        {   
            if(map1[y-1][x/2== 0)   
            {   
                gotoxy(x,y);   
                printf(" ");   
                y-=1;   
                gotoxy(x,y);   
                printf("●");   
            }   
        }   
        break;   
        
    case DOWN :   
        if(y<20)   
        {   
            if(map1[y+1][x/2== 0)   
            {   
                gotoxy(x,y);   
                printf(" ");   
                y+=1;   
                gotoxy(x,y);   
                printf("●");   
            }   
        }   
        break;   
    }   
}   
 
 
void main()   
{   
    int count,count2;   
    for(count=0;count<20;count++)   
    {   
        for(count2=0;count2<20;count2++)   
        {   
            if(map1[count][count2]==1)   
                printf("○");   
            else  
                printf("  ");   
        }   
        printf("\n");   
    }   
    
    x=0;   
    y=1;   
    
    gotoxy(x,y);   
    printf("●");   
    while(1)   
    {   
        move();   
    }   
}  
 
cs


'프로그래밍 언어 > C' 카테고리의 다른 글

scanf_s 함수  (0) 2018.01.24
strcmp() 문자열 비교 함수  (0) 2018.01.24
외부 파일 가전와 숫자만 출력(C언어)  (0) 2018.01.21
C - setbuf 함수[setbuf()]  (0) 2018.01.19
Comments