#include //ÄÜ¼Ö Á¦¾î¿ë Çì´õ #include //delay() µîÀÇ »ç¿ëÀ» À§ÇÑ //È­¸é »çÀÌÁî #define MAX_WIDTH 80 #define MAX_HEIGHT 24 //½ÃÀÛ ÁÂÇ¥ #define LEFT_POS 1 #define TOP_POS 1 //¹Ù±ù¶óÀΰú ¾ÈÂʶóÀÎÀÇ Â÷ÀÌ #define INNER_OFFSET 1 //ÁÂÇ¥ÀÇ ¹è¿­ 󸮸¦ À§ÇÑ À妽º°ª µî·Ï #define OUT_CHAR_IDX 0 #define IN_CHAR_IDX 1 //¹æÇâ°ª µî·Ï #define DIRECTION_LEFT_RIGHT 1 #define DIRECTION_RIGHT_LEFT 2 #define DIRECTION_TOP_DOWN 3 #define DIRECTION_DOWN_TOP 4 void main() { int x[] = {1, 79};//{out x, in x} int y[] = {1, 2};//{out y, in y} int dir[] = {DIRECTION_LEFT_RIGHT, DIRECTION_RIGHT_LEFT};//{out direction, in direction} clrscr(); //while(!kbhit()) //Å°ÀÔ·ÂÀ¸·Î ¼öÇà Áß´Ü... for(;;) { /* ¸¸¾à ÀÏÁ¤ Ƚ¼ö¸¸ µ¹±â ¿øÇÑ´Ù¸é for ¹®À» (i=0; i<À̵¿Ä­¼ö; i++) ¼³Á¤ÇÕ´Ï´Ù.... */ if(kbhit()) break; //Å°ÀÔ·ÂÀ¸·Î ¼öÇà Áß´Ü... //ÀÌÀü À§Ä¡¿¡ °ø¹é Ãâ·Â... gotoxy(x[OUT_CHAR_IDX], y[OUT_CHAR_IDX]); cprintf(" "); gotoxy(x[IN_CHAR_IDX], y[IN_CHAR_IDX]); cprintf(" "); //»õ·Î¿î À§Ä¡ °è»ê... //¹Ù±ù ¹®ÀÚó¸® /* switch(dir[OUT_CHAR_IDX]) { case DIRECTION_LEFT_RIGHT : x[OUT_CHAR_IDX]++; if(x[OUT_CHAR_IDX] == MAX_WIDTH) dir[OUT_CHAR_IDX] = DIRECTION_TOP_DOWN; break; case DIRECTION_RIGHT_LEFT : x[OUT_CHAR_IDX]--; if(x[OUT_CHAR_IDX] == INNER_OFFSET) dir[OUT_CHAR_IDX] = DIRECTION_DOWN_TOP; break; case DIRECTION_TOP_DOWN : y[OUT_CHAR_IDX]++; if(y[OUT_CHAR_IDX] == MAX_HEIGHT) dir[OUT_CHAR_IDX] = DIRECTION_RIGHT_LEFT; break; case DIRECTION_DOWN_TOP : y[OUT_CHAR_IDX]--; if(y[OUT_CHAR_IDX] == INNER_OFFSET) dir[OUT_CHAR_IDX] = DIRECTION_LEFT_RIGHT; break; } */ if(dir[OUT_CHAR_IDX] == DIRECTION_LEFT_RIGHT) { x[OUT_CHAR_IDX]++; if(x[OUT_CHAR_IDX] == MAX_WIDTH) dir[OUT_CHAR_IDX] = DIRECTION_TOP_DOWN; } else if(dir[OUT_CHAR_IDX] == DIRECTION_RIGHT_LEFT) { x[OUT_CHAR_IDX]--; if(x[OUT_CHAR_IDX] == INNER_OFFSET) dir[OUT_CHAR_IDX] = DIRECTION_DOWN_TOP; } else if(dir[OUT_CHAR_IDX] == DIRECTION_TOP_DOWN) { y[OUT_CHAR_IDX]++; if(y[OUT_CHAR_IDX] == MAX_HEIGHT) dir[OUT_CHAR_IDX] = DIRECTION_RIGHT_LEFT; } else if(dir[OUT_CHAR_IDX] == DIRECTION_DOWN_TOP) { y[OUT_CHAR_IDX]--; if(y[OUT_CHAR_IDX] == INNER_OFFSET) dir[OUT_CHAR_IDX] = DIRECTION_LEFT_RIGHT; } //¾ÈÂÊ ¹®ÀÚó¸® /* switch(dir[IN_CHAR_IDX]) { case DIRECTION_LEFT_RIGHT : x[IN_CHAR_IDX]++; if(x[IN_CHAR_IDX] == (MAX_WIDTH - 1)) dir[IN_CHAR_IDX] = DIRECTION_DOWN_TOP; break; case DIRECTION_RIGHT_LEFT : x[IN_CHAR_IDX]--; if(x[IN_CHAR_IDX] == (LEFT_POS + INNER_OFFSET)) dir[IN_CHAR_IDX] = DIRECTION_TOP_DOWN; break; case DIRECTION_TOP_DOWN : y[IN_CHAR_IDX]++; if(y[IN_CHAR_IDX] == (MAX_HEIGHT - 1)) dir[IN_CHAR_IDX] = DIRECTION_LEFT_RIGHT; break; case DIRECTION_DOWN_TOP : y[IN_CHAR_IDX]--; if(y[IN_CHAR_IDX] == (TOP_POS + INNER_OFFSET)) dir[IN_CHAR_IDX] = DIRECTION_RIGHT_LEFT; break; } */ if(dir[OUT_CHAR_IDX] == DIRECTION_LEFT_RIGHT) { x[IN_CHAR_IDX]++; if(x[IN_CHAR_IDX] == (MAX_WIDTH - 1)) dir[IN_CHAR_IDX] = DIRECTION_DOWN_TOP; } else if(dir[OUT_CHAR_IDX] == DIRECTION_RIGHT_LEFT) { x[IN_CHAR_IDX]--; if(x[IN_CHAR_IDX] == (LEFT_POS + INNER_OFFSET)) dir[IN_CHAR_IDX] = DIRECTION_TOP_DOWN; } else if(dir[OUT_CHAR_IDX] == DIRECTION_TOP_DOWN) { y[IN_CHAR_IDX]++; if(y[IN_CHAR_IDX] == (MAX_HEIGHT - 1)) dir[IN_CHAR_IDX] = DIRECTION_LEFT_RIGHT; } else if(dir[OUT_CHAR_IDX] == DIRECTION_DOWN_TOP) { y[IN_CHAR_IDX]--; if(y[IN_CHAR_IDX] == (TOP_POS + INNER_OFFSET)) dir[IN_CHAR_IDX] = DIRECTION_RIGHT_LEFT; } //°è»êµÈ À§Ä¡¿¡ ¹®ÀÚ Ãâ·Â gotoxy(x[OUT_CHAR_IDX], y[OUT_CHAR_IDX]); cprintf("*"); gotoxy(x[IN_CHAR_IDX], y[IN_CHAR_IDX]); cprintf("@"); //³Ê¹« ºü¸¥ ÁøÇàÀ» ¸·±âÀ§ÇØ Áö¿¬ ½ÃÅ´ delay(100); //¹Ð¸®ÃÊ ´ÜÀ§ÀÇ Áö¿¬½Ã°£... } }