/**
키보드 (방향키) 입력받기 프로그램
1. 방향키를 누르면 플레이어가 이동한다
2. 플레이어는 (1.1) ~ (40.20) 안에서만 이동할수 있다
과제
3. 플레이어2는 'w''a''s''d'로 상하좌우 이동한다
4. 네이버 메일 만들어오기!!(코드를 변형 없이 저장하기 위해!!)
키보드 입력 참고 링크 : https://coding-factory.tistory.com/665
**/
#include <stdio.h>
#include <windows.h>
#include <Windows.h>
void gotoXY(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void edge()
{
int i,j;
gotoXY(0,0);
for(i=0;i<=41;i++){
gotoXY(i,0);
printf("~");
gotoXY(i,21);
printf("~");
}
for(j=0;j<=21;j++)
{
gotoXY(0,j);
printf("~");
gotoXY(41,j);
printf("~");
}
}
int main(){
int x=5, y=5;
char c;
printf("프로그램이 시작되었습니다!");
Sleep(500);
system("cls");
while(1)
{
if (_kbhit()) { //키보드 입력 확인 (true / false)
c = _getch();
if (c == -32) { //방향키가 입력되었다면?
c = _getch();
switch (c) {
case 75:
if(x-1>=1) x--;
break;
case 77:
if(x+1<=40) x++;
break;
case 72:
if(y-1>=1) y--;
break;
case 80:
if(y+1<=20) y++;
break;
}
}
}
system("cls");
edge();
gotoXY(x,y);
printf("*");
if (_kbhit()) {
c = _getch();
if (c == -32) {
c = _getch();
switch (c) {
case 97:
if(x-1>=1) x--;
break;
case 100:
if(x+1<=40) x++;
break;
case 119:
if(y-1>=1) y--;
break;
case 115:
if(y+1<=20) y++;
break;
}
}
}
system("cls");
edge();
gotoXY(x,y);
printf("A");
}
}