2016.11.19 12:24

dd

조회 수 131 추천 수 0 댓글 0

#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;
}



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 588
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1365
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2681
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10848
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5015
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8721
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19264
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38153
248 n/2 n-1 더해서 배열에넣고 원하는 수 빼기(승민) 승민 2016.08.20 133
247 n자리수 각자리수 제곱해서 더하기(승민) 승민 2016.08.20 916
246 홀수면 n수까지 홀수 출력 짝수면 n수까지 짝수 출력(승민) 승민 2016.08.20 477
245 n개수의 주사위 돌리기(승민) 승민 2016.08.20 453
244 주사위(승민) 승민 2016.08.20 180
243 세자리수 곱해서 각자리수 곱하기(승민) 승민 2016.08.27 1295
242 포인트 승민 2016.09.10 211
241 오른쪽으로돌려쓰기 선우 2016.10.29 158
240 대덕마고 승민 2016.10.29 171
239 10/29문자열 선우 2016.10.29 129
238 알파벳 배열2-1 승민 2016.10.29 198
237 테두리(승민) 승민 2016.11.12 160
236 테두리(승민) 승민 2016.11.12 179
235 dd 선우 2016.11.19 94
» dd 승민 2016.11.19 131
233 졸업문제 선우 2016.11.19 303
232 ㅇㅇㅇ 선우 2016.11.19 127
231 주사위 굴리기 갓초딩 2017.03.25 1427
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 26 Next
/ 26