2017.04.01 12:09

핵맨

조회 수 181 추천 수 0 댓글 0

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h> 
void design(char (*a)[70], int f_maxr, int f_maxc, int dr, int dc);
void output(char (*a)[70], int f_maxr, int f_maxc, int *cnt);
int setcolor(int k);
int setsim(char (*a)[70], char (*p)[3], int x, int y, int k, int *cnt);
int removesim(char (*a)[70], int x, int y);
    
int main()
{
 char a[20][70];
    int maxr=40;
    int maxc=60;
    int cnt=0;
    
    int i, j;
    int r=10, c=35;
    char ch;
    char p[4][3] = { "▲",  "▼", "◀", "▶"};           
    int x=10, y=10, k=0;                 
                     
//디자인    
    design ( a, 20, 70, r, c);
//    setcolor(63);
//    setsim(a, p, 10, 10, 0);

    while(1) {
     y=(70+y)%70; x=(x+20)%20;
     
     if(y>=66) y=66;
     if(y<=2) y=2; 
     if(x<=1) x=1;
     if(x>=18) x=18;
     
     setsim(a, p, x, y, k, &cnt);
     
     output(a, 20, 70, &cnt);
     removesim(a, x, y);
     setcolor(7);
     
     ch=getch();
     if(ch==-32) ch=getch();
     
//     if(ch==75) {y=y-2; k=2;}
//     if(ch==77) {y=y+2; k=3;}
        int oldk=0; oldk=k;
        
        switch (ch) {
      case 72: 
            
     k=0;
     break;
      case 80: 
            
     k=1;
     break;
      case 75: 
           
     k=2;
     break;
      case 77: 
            
     k=3;
     break;
  }

     if(oldk==k) {
  
     switch (ch) {
      case 72: 
           x--; 
     
     break;
      case 80: 
           x++; 
     
     break;
      case 75: 
           y=y-2;
    
     break;
      case 77: 
           y=y+2; 
     
     break;
  }//switch
 }//if

     system("cls");
    }

    setcolor(15);
//출력

    
    return 0;
}//main

void design(char (*a)[70], int f_maxr, int f_maxc,int dr, int dc) 
{
 int i, j;
 
 for(i=0; i<f_maxr; i++) {
     for(j=0; j<f_maxc; j++) {

  a[i][j] ='A';
  if(i==0) a[i][j]='A';
  if(j==0 || j==f_maxc-1) a[i][j]='A';
  if(i==f_maxr-1) a[i][j]='A';
        }
    }
     
}

void output(char (*a)[70], int f_maxr, int f_maxc, int *cnt)
{ 
    int i, j; 
    
    for(i=0; i<20; i++) {
     setcolor((i%15)+1);
     
        for(j=0; j<70; j++) {
            printf("%c",a[i][j]);
        }
        printf("\n");
    }
    printf("cnt:%d", *cnt);
}


int setcolor(int k)
{
 HANDLE hConsole; 
 hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
 SetConsoleTextAttribute(hConsole, k);
 return 0;
}

int setsim(char (*a)[70], char (*p)[3], int x, int y, int k, int *cnt) 
{
 if(a[x][y]=='A') *cnt=*cnt+2;
 if(a[x][y]=='A') printf("찾음");
 a[x][y]=p[k][0];
 a[x][y+1]=p[k][1]; 
 
 return 0;
}

int removesim(char (*a)[70], int x, int y)
{
 a[x][y]=' ';
 a[x][y+1]=' ';
} 



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 96
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 673
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 1347
공지 Python(파이썬) 학습 자료 PDF file 좋은아빠되기 2014.12.10 5164
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4156
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 7270
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 17736
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 30425
509 회문 구하기 killerjack 2014.03.15 3086
508 화살표날아오기 플랫폼수하고 기차길이조정 killerjack 2014.02.08 1941
507 화살표 이동 file 박윤택 2013.11.30 2383
506 화살표 응용 file 박윤택 2013.11.30 1676
505 홀수면 n수까지 홀수 출력 짝수면 n수까지 짝수 출력(승민) 승민 2016.08.20 287
504 홀수 짝수 for문(스민) 승민 2016.03.05 362
» 핵맨 선우 2017.04.01 181
502 함수3-자가진단4 file 박윤택 2014.08.15 526
501 함수2 자가진단7 선우 2016.07.09 111
500 함수(승민) 승민 2016.08.06 82
499 함수(승민) 승민 2016.06.04 86
498 함수 1 자가진단 8 선우 2016.06.18 94
497 포인트 승민 2016.09.10 129
496 테두리(승민) 승민 2016.11.12 124
495 테두리(승민) 승민 2016.11.12 120
494 큰수작은수 나머지수 출력하기(승민) 승민 2016.08.06 149
493 크림빵, 새우깡, 콜라 돈만큼 구입하는 경우의 수 구하기 killerjack 2014.02.22 3933
492 최대공약수 최소공배수 killerjack 2014.02.15 4124
491 최대공약수 최대공배수 고친거 killerjack 2014.02.22 2479
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 26 Next
/ 26