[C++] 콘솔용 탈출 게임 만들어보기(수정 중)
10 * 10 크기의 맵을 구성한다. (2차원 배열)
플레이어(0, 0)가 존재한다.
탈출지점이 존재한다.
WASD 키입력을 통해 플레이어를 이동시킨다.
탈출 지점은 (0, 0)을 제외하고 랜덤 설정.
P가 E에 도착하면 "탈출에 성공했습니다." 출력하고 프로그램 종료
※ 화면 클리어 : system("cls");
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
#pragma region
#P########
##########
##########
##########
##########
##########
##########
######E###
##########
##########
srand(time(NULL));
char map[10][10];
int key;
int player_x = 0; //플레이어 x 위치
int player_y = 0; //플레이어 y 위치
int exit_x = rand() % 9 + 1; //여기 수정 필요.
int exit_y = rand() % 9 + 1; //여기 수정 필요.
char player = 'P';
char escape = 'E';
while (true)
{
//탈출 지점과 플레이어 지점 비교
if (player_x == exit_x && player_y == exit_y)
{
cout << "탈출에 성공하였습니다.";
break;
}
//맵 구성
for (char map1 = 0; map1 < 10; map1++)
{
for (char map2 = 0; map2 < 10; map2++)
{
map[map1][map2] = '#';
}
}
//플레이어
map[player_x][player_y] = player;
//탈출구
map[exit_x][exit_y] = escape;
cout << "탈출 좌표 x, y : " << exit_x << ", " << exit_y << endl;
cout << "플레이어 좌표 x, y : " << player_x << ", " << player_y << endl;
//출력 부분 ★★★출력 구문을 따로 둘 수 있다는 것 알아두자!!!
for (char map1 = 0; map1 < 10; map1++)
{
for (char map2 = 0; map2 < 10; map2++)
{
cout << map[map1][map2];
}
cout << endl;
}
// 키 움직임
switch (_getch())
{
case 'w': //w : 119
player_x -= 1;
if (player_x < 0)
{
player_x = 0;
}
break;
case 'a': //a : 97
player_y -= 1;
if (player_y < 0)
{
player_y = 0;
}
break;
case 's': //s : 112
player_x += 1;
if (player_x > 9)
{
player_x = 9;
}
break;
case 'd': //d : 100
player_y += 1;
if (player_y > 9)
{
player_y = 9;
}
break;
default:
break;
}
system("cls");
}
#pragma endregion
return 0;
}