#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> // WinApi header 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(void) { int oldk=0; int cnt=0; int i=0; int j; int maxr=20; int maxc=70; char ch=0; int r=10, c=35; char a[20][70]; int x=10, y=10, k=0; char p[4][3]={"▲","▼","◀","▶"}; design(a, maxr, maxc, r, c); while(1){ //y=(70+y)%70; //x=(20+x)%20; setsim(a, p, x, y, k, &cnt); if(y>=66) y=66; if(y<=4) y=4; if(x>=18) x=17; if(x<=2) x=2; output(a, maxr, maxc, &cnt); Removesim(a, x, y); ch=getch( ); if(ch==-32) ch=getch(); 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 setcolor(7); system("cls"); } return 0; } void output(char (*a)[70], int f_maxr, int f_maxc, int *cnt){ //출력 int i,j; int y; int u; for(i=0; i<f_maxr; i++){ for(j=0; j<f_maxc; j++){ setcolor((i%15)+1); 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);//값 셋팅 k 값에 맞는 색상이 출력) } 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'; } } } int setsim(char (*a)[70], char (*p)[3], int x, int y,int k, int *cnt) { if(a[x][y]=='A') *cnt=*cnt+2; a[x][y]=p[k][0]; a[x][y+1]=p[k][1]; } int Removesim(char (*a)[70], int x,int y) { a[x][y]=' '; a[x][y+1]=' '; return 0; }