Position Player::AttackShip(Position pos) { Draw picaso; Position mappos; for (int i = 0; i < m_MyMap.GetMapColumn(); ++i) { for (int j = 0; j < m_MyMap.GetMapRow(); ++j) { mappos.x = i + 'a'; mappos.y = j + '1'; picaso.SetLetterColor(m_MyMap.GetMapStatus(mappos)); picaso.DrawMap1inside(mappos, m_MyMap.GetShipMapStatus(mappos)); picaso.SetLetterColor(WHITE); picaso.SetLetterColor(m_AttackMap.GetMapStatus(mappos)); picaso.DrawMap2inside(mappos, m_AttackMap.GetShipMapStatus(mappos)); picaso.SetLetterColor(WHITE); } } picaso.DrawMap2inside(pos, SQUARE); Position erasepos = pos; int attackkey = 0; while (m_AttackMap.GetMapStatus(pos) == ATTACK || attackkey != ENTER) { attackkey = _getch(); if (attackkey == 224) { attackkey = _getch(); } switch (attackkey) { case LEFT: pos.x--; break; case RIGHT: pos.x++; break; case UP: pos.y--; break; case DOWN: pos.y++; break; } picaso.SetLetterColor(m_AttackMap.GetMapStatus(erasepos)); picaso.DrawMap2inside(mappos, m_AttackMap.GetMapStatus(erasepos)); picaso.SetLetterColor(WHITE); picaso.DrawMap2inside(pos, SQUARE); erasepos = pos; } picaso.DrawMap2inside(pos, ECSE); m_AttackMap.ChangeStatusMap(pos, ATTACK); return pos; }