MineSweeper ë¬¸ì œí’€ì�´
소ê°� ¶
지뢰찾기 겜 ë§Œë“ ê²½í—˜ì�„ 바탕으로 바로 ì§°ì�Œ
ë¬¸ì œí‘¸ëŠ”ë�° 30ë¶„ + ë¬¸ì œì œì¶œí•˜ëŠ”ë�° 30ë¶„
VC++ì—�ì„ ì»´íŒŒì�¼ì—�러 안 났는ë�° ë¬¸ì œì±„ì �하는곳ì—�ì„ ì—�러
변수 i ì„ ì–¸ 밖으로 ë¹¼ê³ , mainì�´ int리턴하ë�„ë¡� 변경해서 í•´ê²°
그래ë�„ í”„ë ˆì í…Œì�´ì…˜ ì—�러는 ë°œìƒ�
왜 그럴까나...
ë¬¸ì œí‘¸ëŠ”ë�° 30ë¶„ + ë¬¸ì œì œì¶œí•˜ëŠ”ë�° 30ë¶„
VC++ì—�ì„ ì»´íŒŒì�¼ì—�러 안 났는ë�° ë¬¸ì œì±„ì �하는곳ì—�ì„ ì—�러
변수 i ì„ ì–¸ 밖으로 ë¹¼ê³ , mainì�´ int리턴하ë�„ë¡� 변경해서 í•´ê²°
그래ë�„ í”„ë ˆì í…Œì�´ì…˜ ì—�러는 ë°œìƒ�
왜 그럴까나...
소스 ¶
~cpp
#include <iostream>
using namespace std;
// 주위� 있는 지뢰� 수를 찾는다.
int findNumberOfMine(char input[][100], int n, int m, int y, int x)
{
int number = 0;
for (int i = y - 1; i <= y + 1; i++)
for (int j = x - 1; j <= x + 1; j++)
{
if (i >= 0 && i < n && j >= 0 && j < m && input[i][j] == '*')
number++;
}
return number;
}
int main()
{
int n, m;
int field = 0;
char input[100][100];
char output[100][100];
cin >> n >> m;
field++;
int i, j;
while (!(n == 0 && m == 0))
{
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
cin >> input[i][j];
}
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
if (input[i][j] == '*')
output[i][j] = '*';
else
output[i][j] = findNumberOfMine(input, n, m, i, j) + '0';
}
cout << "Field #" << field << ":\n";
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cout << output[i][j];
cout << endl;
}
cout << endl;
cin >> n >> m;
field++;
}
return 0;
}










