[C언어] 미로 찾기 게임 제작
<단계1>
#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define PGUP 73
#define PGDN 81
#define ESC 27
<단계2>
<참고>
void CPushPushDlg::PlayerUp()
{
if (m_bDeleteRest)
{
m_bDeleteRest = false;
m_PosData.DeleteRest();
}
// 벽면1을 만났을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] == 1)
m_PlayerPos.y++; // 정지
// 공6을 만났을때
else if (m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] == 6)
{
// 벽면 1이 있을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 1 ||
// 들어간 타켓4를 만났을때
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 4 ||
// 공6을 만났을때
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 6)
m_PlayerPos.y++; // 정지
// 안들어간 타켓5를 만났을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 5)
{
m_PosData.Insert(m_Map, m_PlayerOldPos, m_nLevel); // 이전정보백업
// 들어간 타켓4로 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] = 4;
// 옮기전 자리를 안배경으로 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] = 3;
}
// 빈자리 일때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 3)
{
m_PosData.Insert(m_Map, m_PlayerOldPos, m_nLevel); // 이전정보백업
// 공을 옮김
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] = 6;
// 옮기기전 자리 안배경
m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] = 3;
}
}
// 들어간 타켓4를 만났을때
else if (m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] == 4)
{
// 벽면 1이 있을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 1 ||
// 들어간 타켓4를 만났을때
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 4 ||
// 공6을 만났을때
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 6)
m_PlayerPos.y++; // 정지
// 안들어간 타켓5를 만났을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 5)
{
m_PosData.Insert(m_Map, m_PlayerOldPos, m_nLevel); // 이전정보백업
// 들어간 타켓4로 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] = 4;
// 옮기전 자리를 안들어간 타켓5로 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] = 5;
}
// 빈자리3을 만났을때
if (m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] == 3 )
{
m_PosData.Insert(m_Map, m_PlayerOldPos, m_nLevel); // 이전정보백업
// 공을 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y-1][m_PlayerPos.x] = 6;
// 옮기전 자리를 안들어간 타켓5로 만듬
m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] = 5;
}
}
// 들어간 타켓3, 5를 만났을때
else if (m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] == 3 ||
m_Map.nMap[m_nLevel][m_PlayerPos.y][m_PlayerPos.x] == 5 )
m_PosData.Insert(m_Map, m_PlayerOldPos, m_nLevel); // 이전정보백업
}