10 x 10 크기의 맵 구성.(2차원 배열)
플레이어(O), 탈출구(E)가 존재한다.
WASD 키입력을 통해 플레이어를 이동.
플레이어가 탈출구에 도달하면 "탈출에 성공했습니다" 텍스트 출력후 종료.
#O########
##########
##########
##########
##########
##########
##########
######E###
##########
##########
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
//맵 크기
char map[10][10] = {};
//탈출구 좌표 변수(랜덤)
srand(time(NULL));
int exit_position_x = rand() % 9 + 1;
int exit_position_y = rand() % 9 + 1;
//플레이어 좌표 변수(초기 고정)
int player_position_x = 0;
int player_position_y = 0;
//인게임
while ((exit_position_x != player_position_x) || (exit_position_y != player_position_y))
{
//맵 리딩
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
map[i][j] = '#';
}
}
//플레이어, 출구 배치
map[exit_position_x][exit_position_y] = 'E';
map[player_position_x][player_position_y] = 'O';
//맵 출력
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << map[i][j];
}
cout << "\n";
}
//조작버튼 및 맵 이탈 방지
switch (int input = _getch())
{
case 119:
if (player_position_x > 0)
{
player_position_x -= 1;
}
break;
case 115:
if (player_position_x < 9)
{
player_position_x += 1;
}
break;
case 97:
if (player_position_y > 0)
{
player_position_y -= 1;
}
break;
case 100:
if (player_position_y < 9)
{
player_position_y += 1;
}
break;
}
//초기화
system("cls");
}
cout << "탈출에 성공했습니다!" << endl;
}
1주일동안 공부한 내용을 활용한 실습을 진행했다.
아직 익숙치 않은 부분이 있어서 조금은 헤메이며 작성했으나, 실습을 진행하며 공부에 많은 도움이 되었다.