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 299
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1079
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2394
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10306
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4719
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8267
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 18956
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 37860
90 정올 반복제어문3 자가진단5(반대) 정승준 2018.08.25 91
89 정올 반복제어문3 형성평가5 정승준 2018.08.25 106
88 정올 반복제어문3 형성평가5(반대) 정승준 2018.08.25 45
87 정올 반복제어문3 자가진단4(반대) 정승준 2018.08.25 63
86 535 : 선택제어문 - 자가진단8 adbdcd123 2018.08.25 150
85 정올 반복제어문3 형성평가6(비슷 1) 정승준 2018.08.25 50
84 정올 반복제어문3 형성평가6(비슷 2) 정승준 2018.08.25 49
83 정올 반복제어문3 형성평가6 정승준 2018.08.25 51
82 120 : 선택제어문 - 형성평가1 adbdcd123 2018.08.25 57
81 정올 반복제어문3 형성평가7 정승준 2018.08.25 87
80 121 : 선택제어문 - 형성평가2 adbdcd123 2018.08.25 102
79 정올 반복제어문3 형성평가7(반대) 정승준 2018.08.25 46
78 정올 반복제어문3 형성평가8 정승준 2018.08.25 48
77 정올 반복제어문3 형성평가9 정승준 2018.08.25 52
76 정올 반복제어문3 형성평가9(비슷) 정승준 2018.08.25 69
75 정올 반복제어문3 자가진단4(반대 2가지 방법) 정승준 2018.08.25 65
74 122 : 선택제어문 - 형성평가3 adbdcd123 2018.08.25 89
73 123 : 선택제어문 - 형성평가4 adbdcd123 2018.08.25 94
72 정올 반복제어문3 형성평가A 정승준 2018.08.25 56
71 124 : 선택제어문 - 형성평가5 adbdcd123 2018.08.25 154
Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 Next
/ 26