#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#define xy 13

void right(int arr[xy][xy],int *x,int *y,int inwall,int wall,int *remember)
{
     if(arr[*x][(*y)+1]==inwall || arr[*x][(*y)+1]==wall)
     {}
     else
     {
         *remember=arr[(*x)][++(*y)];
     }
}//right
void left(int arr[xy][xy],int *x,int *y,int inwall,int wall,int *remember)
{
     if(arr[*x][(*y)-1]==inwall || arr[*x][(*y)-1]==wall)
     {}
     else
     {
         *remember=arr[(*x)][--(*y)];
     }
}//left
void up(int arr[xy][xy],int *x,int *y,int inwall,int wall,int *remember)
{
     if(arr[(*x)-1][(*y)]==inwall || arr[*x][(*y)]==wall)
     {}
     else
     {
         *remember=arr[--(*x)][(*y)];
     }
}//up
void down(int arr[xy][xy],int *x,int *y,int inwall,int wall,int *remember)
{
     if(arr[(*x)+1][(*y)]==inwall || arr[(*x)+1][(*y)]==wall)
     {}
     else
     {
         *remember=arr[++(*x)][(*y)];
     }
}//down
void movef(char cur,int arr[xy][xy],int *x,int *y,int inwall,int wall,int *remember)
{   
     switch(cur)
     {
     case 77:
          right(arr,x,y,inwall,wall,remember);
          break;
     case 75:
          left(arr,x,y,inwall,wall,remember);
          break;   
     case 72:
          up(arr,x,y,inwall,wall,remember);
          break;        
     case 80:
          down(arr,x,y,inwall,wall,remember);
          break;        
     }
}
void change(int d)
{
     int space=0;
     int wall=1;
     int my=2;
     int you=3;
     int inwall=4;
     int move=5;
     int setcolor[10]={1,8,13,10,15,15,15};
    
     HANDLE hConsole;

     hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleTextAttribute(hConsole, setcolor[d]);

     char str[10][3]={"  ","■","●","●","▧","◈","●"};
     printf("%s",&str[d][0]);
}//change

int lencheak(int maxlen)
{  
    int i;
    for(i=0;i*i<maxlen;i++);
   
    return i-1;
}//lencheak
int main(void)
{
    int x;
    int y;
    int remember=0;
    int space=0;
    int wall=1;
    int inwall=4;
    int my=2;
    int you=3;
    int move=5;
    int arr[xy][xy];
    int maxlen;
    int stagenum;
    int i=0;
    int j=0;
    int data=0;
    char cur=-32;
    char recur=0;
    int zx;
    int zy;
    int zhit;
   
   
    //파일오픈 
    FILE *fp=fopen("stage1.txt","r");
    //파일오픈오류체크
    if(fp==NULL)
    {  
        puts("파일오픈 실패!");
        return -1;
        }
    //최대길이받기   
    fscanf(fp,"%d",&maxlen);
    //먼지 모르겟지만 필요없는 숫자 제거
    fscanf(fp,"%d",&stagenum);

   
    //배열에 map읽어서 집어넣기
    for(i=0;i<xy;i++)
    {
        for(j=0;j<xy;j++)
        {  
            fscanf(fp,"%d",&data);
            arr[i][j]=data;
        }
    }//for i
   
    //커서 초기치 집어넣기
    arr[xy/2][xy/2]=5;
   
    //커서 좌표값 잡기
    x=xy/2;
    y=x;
   
    //배열 출력하기
    while(1)
    {
            system("cls");
            for(i=0;i<xy;i++)
            {
               for(j=0;j<xy;j++)
               {
                  change(arr[i][j]);
               }
               printf("\n");
            }//for i
           
            for(;;)
            {
               if(cur!=-32)
               recur=cur;
       
               cur=getch();
       
               if(cur!=-32)
               break;
            }
            arr[x][y]=remember;
            movef(cur,arr,&x,&y,inwall,wall,&remember);
            arr[x][y]=move;

    } 
    system("pause");
    return 0;
}



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 748
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1508
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2858
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 11244
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5176
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 9006
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19450
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38327
110 별표 잡아먹기 killerjack 2014.05.17 1231
109 별을 다이아모양으로 출력하기 killerjack 2014.05.03 2099
108 별로 다이아 껍데기만 출력하기 killerjack 2014.05.03 1378
107 버블정렬 killerjack 2014.03.15 2040
106 배열을 사용하지 않고 A(a) B(b) C(c) ....Z(z) 까지 출력 하시오 좋은아빠되기 2013.08.11 2601
105 배열2 형성평가 3 갓초딩 2017.04.01 238
104 배열2 자가진단2 선우 2016.05.07 229
103 배열2 자가진단 6 선우 2016.05.07 197
102 배열1정올 문제(승민) 승민 2016.04.02 215
101 배열1 최소 최대 선우 2016.04.02 177
100 배열1 자가진단8 선우 2016.04.02 253
99 배열1 자가진단5 선우 2016.04.02 287
98 배열1 자가진단2 (승민) 승민 2016.04.02 177
97 배열1 자가진단 9 선우 2016.04.02 211
96 배열 작은 정수 구하기(승민) 승민 2016.04.16 230
95 배열 양수1이상 100미만 최댓값 100이상 10000미만 최솟값 선우 2016.04.02 218
94 배열 5개숫자 더히가(승민) 승민 2016.03.26 139
93 배열 3가지 선우 2016.03.19 129
92 배열 하품팬더 2014.03.08 1925
91 반올림(수정) 1 file 박윤택 2014.08.18 444
Board Pagination Prev 1 ... 16 17 18 19 20 21 22 23 24 25 26 Next
/ 26