/*#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
#include <stdio.h>
#include <conio.h>
#include <windows.h>
// 상하좌우 상수값 설정
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
int map[50][50] = {0};
int px=2, py=2; // 플레이어의 위치
void textcolor(int colorNum) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorNum);
}
void gotoxy(int x, int y)
{
COORD Pos = {x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Pos);
}
void make_map()
{
int i, j;
// 1. 바깥쪽
for(i=0;i<40;i++){
map[i][0]=1;
map[0][i]=1;
map[i][39]=1;
map[39][i]=1;
}
for(i=0;i<10;i++){
//y좌표 x좌표
map[13][i+2]=1;
map[26][i+13]=1;
map[13+i][10]=1;
map[23][10+i]=1;
map[26+i][10]=1;
map[0+i][27]=1;
map[11][21+i]=1;
map[11+i][27]=1;
map[25+i][20]=1;
}
for(i=0; i<=5; i++)
{
map[32+i][37]=1;
map[21][34+i]=1;
map [13][28+i]=1;
map [12+i][10]=1;
map[21+i][23]=1;
map[2+i][10]=1;
map[4][12+i]=1;
map[4+i][14]=1;
map[6+i][30]=1;
map[9+i][23]=1;
map[2][17+i]=1;
map[4+i][19]=1;
map[4][19+i]=1;
map[7][16+i]=1;
map[9+i][34]=1;
map[27+i][37]=1;
map[26][33+i]=1;
map[23][3+i]=1;
map[29][11+i]=1;
}
for(i=0; i<=3; i++)
{
map[12+i][16]=1;
map[15][12+i]=1;
map[10][10+i]=1;
map[10+i][9]=1;
map[9][14+i]=1;
map[12][11+i]=1;
map[12+i][10]=1;
map[14+i][32]=1;
map[13+i][23]=1;
map[12][16+i]=1;
map[8][8+i]=1;
map[2+i][4]=1;
map[6][2+i]=1;
map[2+i][6]=1;
map[3][6]=1;
map[2][7+i]=1;
/// 색 바꾸기 모름 map[38+i][37]=5;
map[32+i][28]=1;
map[20][30+i]=1;
textcolor(9);
map[21][24+i]=1;
textcolor(9);
map[19][23+i]=1;
map[16+i][18]=1;
map[11][23+i]=1;
}
}
void print_map()
{
int i, j;
gotoxy(0,0);
for(i=0 ; i<40 ; i++)
{
for(j=0 ; j<40 ; j++)
{
if(map[i][j]==1)
{
printf("*");
}
else if(map[i][j]==5)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
int main(void)
{
char c;
int i,j,s;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
make_map();
gotoxy(px,py);
printf("#");// 플레이어의 위치에 가서 출력하기
print_map();
for (;;)
{
if (_kbhit()) //키보드 입력 확인 (true / false)
{
c = _getch(); // 방향키 입력시 224 00이 들어오게 되기에 앞에 있는 값 224를 없앰
if (c == -32) // -32로 입력되면
{
c = _getch(); // 새로 입력값을 판별하여 상하좌우 출력
gotoxy(px,py); printf(" "); // 플레이어가 있던 곳 지우기
if(c==LEFT)
{
if(map[py][px-1]!=1) px--;
}
else if(c==RIGHT)
{
if(map[py][px+1]!=1) px++;
}
else if(c==UP)
{
if(map[py-1][px]!=1) py--;
}
else
{
if(map[py+1][px]!=1) py++;
}
//미로에 못가게??
textcolor(10);
gotoxy(px,py); printf("#"); // 플레이어의 위치에 가서 출력하기
textcolor(10);
}
}
}
return 0;
}