/**
키보드 (방향키) 입력받기 프로그
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;
// 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("*");
// system("cls");
// edge();
// gotoXY(x,y);
// printf("A");
// }
//
//}
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <conio.h>
#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define SPACEC 32
int x, y;
int map[100][100] = {0};
int playerType = 1;
void gotoXY(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
int main()
{
char c;
x = 5;
y = 5;
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 11 );
for(int i=0; i<20; i++) {
for(int j=0; j<40; j++) {
if(i==0 || j==0 || i==19 ||j==39) {
map[i][j] = 9;
printf("~");
}
else {
printf(" ");
}
}
printf("\n");
}
gotoXY(x, y);
printf("*");
while(1)
{
if (kbhit()) //키보드 입력 확인 (true / false)
{
c = _getch();
switch(c)
{
case 49:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 1 );
break;
}
case 50:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 2 );
break;
}
case 51:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 3 );
break;
}
case 52:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 4 );
break;
}
case 53:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 5 );
break;
}
case 54:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 6 );
break;
}
case 55:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 7 );
break;
}
case 56:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 8 );
break;
}
case 57:
{
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 9 );
break;
}
case 75: // LEFT
if(x==1) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
x--;
map[x][y] = 7;
gotoXY(x, y);
printf("%c", playerType==1 ? '*' : 'A');
break;
case 77: // RIGHT
if(x==38) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
x++;
map[x][y] = 7;
gotoXY(x, y);
printf("%c", playerType==1 ? '*' : 'A');
break;
case 72: // UP
if(y==1) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
y--;
map[x][y] = 7;
gotoXY(x, y);
printf("%c", playerType==1 ? '*' : 'A');
break;
case 80: // DOWN
if(y==18) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
y++;
map[x][y] = 7;
gotoXY(x, y);
printf("%c", playerType==1 ? '*' : 'A');
break;
case 97:
if(x==1) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
x--;
map[x][y] = 7;
gotoXY(x, y);
printf("A");
playerType=2;
break;
case 100:
if(x==38) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
x++;
map[x][y] = 7;
gotoXY(x, y);
printf("A");
break;
case 119:
if(y==1) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
y--;
map[x][y] = 7;
gotoXY(x, y);
printf("A");
break;
case 115:
if(y==18) {
continue;
}
map[x][y] = 0;
gotoXY(x, y);
printf(" ");
y++;
map[x][y] = 7;
gotoXY(x, y);
printf("A");
break;
}
}
}
}