2016.11.19 12:24

dd

조회 수 153 추천 수 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 900
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1664
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 3015
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 11449
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5334
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 9159
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19577
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38497
248 n/2 n-1 더해서 배열에넣고 원하는 수 빼기(승민) 승민 2016.08.20 144
247 n자리수 각자리수 제곱해서 더하기(승민) 승민 2016.08.20 939
246 홀수면 n수까지 홀수 출력 짝수면 n수까지 짝수 출력(승민) 승민 2016.08.20 505
245 n개수의 주사위 돌리기(승민) 승민 2016.08.20 469
244 주사위(승민) 승민 2016.08.20 196
243 세자리수 곱해서 각자리수 곱하기(승민) 승민 2016.08.27 1330
242 포인트 승민 2016.09.10 230
241 오른쪽으로돌려쓰기 선우 2016.10.29 176
240 대덕마고 승민 2016.10.29 195
239 10/29문자열 선우 2016.10.29 161
238 알파벳 배열2-1 승민 2016.10.29 222
237 테두리(승민) 승민 2016.11.12 194
236 테두리(승민) 승민 2016.11.12 199
235 dd 선우 2016.11.19 118
» dd 승민 2016.11.19 153
233 졸업문제 선우 2016.11.19 326
232 ㅇㅇㅇ 선우 2016.11.19 153
231 주사위 굴리기 갓초딩 2017.03.25 1448
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 26 Next
/ 26