#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 518
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1281
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2602
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10582
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4939
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8524
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19164
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38072
170 정올 - 문제은행 - 강아지와 병아리(1001) 조정미 2018.06.23 670
» 세균전 복습 이번엔 내머리가 좀 많이 들어갓음 z키 기능 추가하고 복사 또는 이동 만들어야한다 killerjack 2014.07.05 672
168 정올 기초다지기(함수2-자가진단6) killerjack 2014.07.26 680
167 정올 기초다지기(함수3-자가진단5)[for버전] killerjack 2014.08.16 684
166 정올 - 알고리즘 - 치즈(1840) 조정미 2018.05.05 697
165 정올 기초다지기(문자열1-자가진단9)ver 1. killerjack 2014.09.20 700
164 정올 - 실전대비 - 단어맞추기(1034) 조정미 2018.05.26 710
163 정올 - 실력키우기 - 숫자고르기(1459) 조정미 2018.01.27 713
162 정올 기초다지기(문자열1-자가진단9)ver 2. killerjack 2014.09.20 717
161 정올 기초다지기(포인터-자가진단1) killerjack 2014.11.15 727
160 정올 대각선 지그재그 조정미 2017.11.18 734
159 정올 기초다지기(문자열1-자가진단6) killerjack 2014.09.20 744
158 정올 기초다지기(함수2-자가진단8) killerjack 2014.07.26 746
157 정올 기초다지기(함수2-자가진단7) killerjack 2014.07.26 767
156 정올 기초다지기(함수2-자가진단5) killerjack 2014.07.26 770
155 정올 - 실력키우기 - 쇠막대기(2858) 조정미 2018.01.20 772
154 정올 기초다지기 (함수3-자가진단6) killerjack 2014.08.30 794
153 정올 기초다지기(함수3-형성평가6) killerjack 2014.09.20 801
152 scanf함수를 사용한 배열(승민) 승민 2016.03.26 808
151 정올 기초다지기(aD003-함수3) killerjack 2014.07.12 810
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 26 Next
/ 26