#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
#define ESC 27
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
void textcolor(int i);
void gotoxy(int x, int y);
void box(int start_x, int start_y, int end_x, int end_y);
void textcolor(int i)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);
}
void gotoxy(int x, int y)
{
COORD Pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void box(int start_x, int start_y, int end_x, int end_y)
{
int i, color=10;
//color = rand() % 100;
textcolor(color);
for(i=start_y+1; i<end_y; i++)
{
gotoxy(start_x, i);
printf("x");
gotoxy(end_x, i);
printf("x");
}
for(i=start_x; i<=end_x; i++)
{
gotoxy(i, start_y);
printf("x");
gotoxy(i, end_y);
printf("x");
}
printf("\n");
}
int main()
{
int start_x, start_y, end_x, end_y;
int ch;
/*
//방향키 아스키 코드 알아보기
while(1)
{
ch = getch();
printf("%d\n", ch);
}
*/
srand(time(NULL));
start_x = rand() % 10;
start_y = rand() % 10;
end_x = 10 + rand() % 65;
end_y = 10 + rand() % 13;
box(start_x, start_y, end_x, end_y);
while(1)
{
ch = getch();
system("cls");
if(ch == 224) // 특수키는 리턴값이 2개다 ㅡㅡ;
ch = getch();
else if(ch == ESC)
{
box(start_x, start_y, end_x, end_y);
exit(1);
}
else
{
box(start_x, start_y, end_x, end_y);
continue;
}
/*
if(ch == 224) // 특수키는 리턴값이 2개다 ㅡㅡ;
{
ch = getch();
ch<<=8; // 8bit를 비트이동 시켜서 고유 값은 만든다.
}
이 값을 헤더 파일로 만들어(key.h) 사용하기도 한다.
#define ESC 27
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
*/
switch(ch)
{
case UP: // 위
start_y--;
end_y--;
box(start_x, start_y, end_x, end_y);
break;
case LEFT: // 왼쪽
start_x--;
end_x--;
box(start_x, start_y, end_x, end_y);
break;
case RIGHT: // 오른쪽
start_x++;
end_x++;
box(start_x, start_y, end_x, end_y);
break;
case DOWN: // 아래
start_y++;
end_y++;
box(start_x, start_y, end_x, end_y);
break;
}
}
return 0;
}
'프로그래머의 길 > C & C++' 카테고리의 다른 글
조건부 컴파일 전처리 명령어 (0) | 2007.03.26 |
---|---|
C로 만든 숫자 야구 프로그램 (0) | 2007.03.24 |
#define 함수 활용 (0) | 2007.03.23 |
달력 알고리즘 & 프로그램 (0) | 2007.03.22 |
데이터를 파일로 입출력하는 프로그램 (0) | 2007.03.22 |