2016.11.19 12:24

dd

조회 수 119 추천 수 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 298
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1079
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2393
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10297
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4713
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8255
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 18954
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 37857
430 re file 박윤택 2013.12.14 1617
429 2016-03-05 첫번째 file 뚜디 2016.03.05 1589
428 이건 내가 윤년구하기한거 killerjack 2014.04.12 1579
427 반복문을 탈출 그냥학생 2014.02.22 1578
426 정올 기초다지기(배열2-자가진단3) killerjack 2014.05.31 1572
425 정올 기초다지기(배열2-자가진단7) killerjack 2014.05.31 1507
424 철희, 철수, 영희, 영수 성적 입력받아서 합계구하기 killerjack 2014.03.15 1445
423 정올 기초다지기(함수1-자가진단6) killerjack 2014.05.31 1439
422 정올 기초다지기(배열2-자가진단6) killerjack 2014.05.31 1432
421 정올 기초다지기(aA001-배열2 1) killerjack 2014.05.31 1430
420 정올 기초다지기(aA003-배열2 3) killerjack 2014.05.31 1420
419 주사위 굴리기 갓초딩 2017.03.25 1414
418 입력한 숫자 이하 짝수만 출력하기(승민) 승민 2016.03.12 1402
417 정올 기초다지기(함수1-자가진단8) killerjack 2014.06.07 1380
416 두 실수 사이 정수 갯수 구하기 killerjack 2014.08.16 1373
415 시계~~~ killerjack 2014.05.17 1371
414 별로 다이아 껍데기만 출력하기 killerjack 2014.05.03 1344
413 정올 - 실력키우기 - 오목(1733) 조정미 2018.01.20 1326
412 dev C++ 입력키값 숫자로 알아보기 killerjack 2014.06.07 1315
411 정올 - 실력키우기 - 최대공약수와 최소공배수(1658) 조정미 2018.01.02 1311
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 26 Next
/ 26