/*
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
4651 윷놀이
#include <stdio.h>
int main()
{
int n,m,o,p,i;
for(i=1; i<=3; i++)
{
scanf("%d %d %d %d",&n,&m,&o,&p);
if(n+m+o+p==3)
{
printf("A\n");
}
else if(n+m+o+p==2)
{
printf("B\n");
}
else if(n+m+o+p==1)
{
printf("C\n");
}
else if(n+m+o+p==0)
{
printf("D\n");
}
else
{
printf("E\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++){
map[13][i]=1;
map[26][i+10]=1;
map[13+i][10]=1;
map[23][10+i]=1;
map[25+i][10]=1;
map[0+i][27]=1;
map[11][21+i]=1;
map[11+i][27]=1;
map[25+i][21]=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
{
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(15);
}
}
}
return 0;
}