#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 744
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1502
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2847
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 11232
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5169
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8998
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19440
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38322
430 반복문 몇번 하는지 초기치(승민) 승민 2016.03.05 125
429 반복문을 탈출 그냥학생 2014.02.22 1597
428 반복제어문3 형성평가 1 선우 2016.03.19 299
427 반복제어문3 형성평가 2 선우 2016.03.19 327
426 반복제어문3 형성평가 3 선우 2016.03.19 233
425 반복제어문3 형성평가 4 선우 2016.03.19 315
424 반복제어문3 형성평가 5 선우 2016.03.19 364
423 반복제어문3 형성평가 6 선우 2016.03.19 260
422 반복제어문3 형성평가 7 선우 2016.03.19 250
421 반올림 file 박윤택 2014.08.15 467
420 반올림(수정) 1 file 박윤택 2014.08.18 444
419 배열 하품팬더 2014.03.08 1925
418 배열 3가지 선우 2016.03.19 129
417 배열 5개숫자 더히가(승민) 승민 2016.03.26 139
416 배열 양수1이상 100미만 최댓값 100이상 10000미만 최솟값 선우 2016.04.02 217
415 배열 작은 정수 구하기(승민) 승민 2016.04.16 229
414 배열1 자가진단 9 선우 2016.04.02 211
413 배열1 자가진단2 (승민) 승민 2016.04.02 174
412 배열1 자가진단5 선우 2016.04.02 286
411 배열1 자가진단8 선우 2016.04.02 253
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 26 Next
/ 26