#include #include #include #include #define length 39 #define height 25 #define LEFT 75 #define RIGHT 77 #define ATTACT 32 #define MAXBUBBLE 3 int i = 0, j = 0; int px = 2, py = 23; int LorR; BOOL LR = 1; struct { int no; int mx; int my; int vel; char name[10]; int action; }arr[12]; struct { BOOL exist; int x, y; }Bubble[MAXBUBBLE]; void gotoxy(int a, int b) { COORD pos = { a + 1,b + 1 }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void Draw_monster(int x, int y) { gotoxy(x, y); printf("¿ì"); } void Erase_monster(int x, int y) { gotoxy(x, y); printf(" "); } void Draw_player() { gotoxy(px, py); printf("¿Ê"); } void Erase_player() { gotoxy(px, py); printf(" "); } void Draw_bubble(int i) { gotoxy(Bubble[i].x, Bubble[i].y); printf("o"); } void Erase_bubble(int i) { gotoxy(Bubble[i].x, Bubble[i].y); printf(" "); } int map[height][length] = { 1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1, }; void showmap() { int i, j; gotoxy(0, 0); for (i = 0; i < height; i++) { for (j = 0; j < length; j++) { switch (map[i][j]) { case 0: printf(" "); break; case 1: printf("¡á"); break; } } printf("\n"); } } void Player_move() { int c = 0; if (_kbhit()) { c = _getch(); if (c == 224) { c = _getch(); if (c == LEFT&&px > 1) { Erase_player(); px--; Draw_player(); if (Bubble[i].exist == FALSE) LorR = 0; } if (c == RIGHT&&px < 35) { Erase_player(); px++; Draw_player(); if (Bubble[i].exist == FALSE) LorR = 1; } } switch (c) { case ATTACT: for (i = 0; i < MAXBUBBLE&&Bubble[i].exist == TRUE; i++) { ; } if (i != MAXBUBBLE) { Bubble[i].x = px + 2; Bubble[i].y = py; Bubble[i].exist = TRUE; } break; } } } void attact() { int i = 0,j=0; for (i = 0; i < MAXBUBBLE; i++) { if (Bubble[i].exist == TRUE) { Erase_bubble(i); if (j>12) { Erase_bubble(i); Bubble[i].exist = FALSE; j = 0; } else { if (LorR == 0) { Bubble[i].x--; Draw_bubble(i); Sleep(30); j++; } else { Bubble[i].x++; Draw_bubble(i); Sleep(30); j++; } } } } } void Monster_move(int i) { Erase_monster(arr[i].mx, arr[i].my); if (arr[i].mx == 1 || arr[i].mx == 4 || arr[i].mx == 68 || arr[i].mx == 72 || arr[i].mx == 43 || arr[i].mx == 59) { if (LR == 0) LR = 1; else LR = 0; if (LR == 0) { arr[i].mx--; Draw_monster(arr[i].mx, arr[i].my); Sleep(10); } else { arr[i].mx++; Draw_monster(arr[i].mx, arr[i].my); Sleep(10); } } else { if (LR == 0) { arr[i].mx++; Draw_monster(arr[i].mx, arr[i].my); Sleep(10); } else { arr[i].mx--; Draw_monster(arr[i].mx, arr[i].my); Sleep(10); } } if (arr[i].mx == Bubble[i].x&&arr[i].my == Bubble[i].x) { Erase_monster(arr[i].mx, arr[i].my); Erase_bubble(i); } } int main() { arr[0].mx = 1; arr[0].my = 16; arr[1].mx = 1; arr[1].my = 11; arr[2].mx = 1; arr[2].my = 6; arr[3].mx = 68; arr[3].my = 16; arr[4].mx = 68; arr[4].my = 11; arr[5].mx = 68; arr[5].my = 6; arr[6].mx = 15; arr[6].my = 16; arr[7].mx = 15; arr[7].my = 11; arr[8].mx = 15; arr[8].my = 6; arr[9].mx = 43; arr[9].my = 16; arr[10].mx = 43; arr[10].my = 11; arr[11].mx = 43; arr[11].my = 6; Draw_player(); showmap(); // ¸ÊÀ» ±×¸®´Â ÇÔ¼ö while (1) { Player_move(); for (i = 0; i<12; i++) { Monster_move(i); } attact(); } }