
本文共 3613 字,大约阅读时间需要 12 分钟。
���������������������������������������������������������������n���m������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������
���������������������������n���m������������������������������������������������������n���������������m������������' * '������������������' ? '���������������������
������������
������n������������������m������������������������������'*'���������������������������������������������������������
Java������������
���������������������������Java���������
import java.util.Scanner;public class MinesweeperGame { public static void main(String[] args) { // ��������������������������������������� char[][] initialArray = createInitialArray(); // ��������������������������������� char[][] resultArray = computeResultArray(initialArray); // ������������ printResultArray(resultArray); } // ������������������������ private static char[][] createInitialArray() { Scanner scanner = new Scanner(System.in); scanner.useDelimiter(""); int n = Integer.parseInt(scanner.next()); int m = Integer.parseInt(scanner.next()); char[][] array = new char[n + 2][m + 2]; for (int i = 1; i <= n; i++) { char[] line = scanner.next().toCharArray(); for (int j = 1; j <= m; j++) { array[i][j] = line[j - 1]; } } return array; } // ������������������������������ private static char[][] computeResultArray(char[][] initialArray) { int height = initialArray.length - 2; int width = initialArray[0].length - 2; char[][] result = new char[height][width]; for (int i = 1; i <= height; i++) { for (int j = 1; j <= width; j++) { if (initialArray[i][j] == '*') { result[i - 1][j - 1] = '*'; } else { int mineCount = countMines(initialArray, i, j); result[i - 1][j - 1] = (mineCount + "").charAt(0); } } } return result; } // ������������������������ private static int countMines(char[][] grid, int i, int j) { int count = 0; // ������������������������������������������������������������ if (i > 1 && grid[i - 1][j] == '*') count++; if (i + 1 < grid.length && grid[i + 1][j] == '*') count++; if (j > 1 && grid[i][j - 1] == '*') count++; if (j + 1 < grid[0].length && grid[i][j + 1] == '*') count++; if (i > 1 && grid[i - 1][j - 1] == '*') count++; if (i + 1 < grid.length && grid[i + 1][j + 1] == '*') count++; if (i > 1 && grid[i - 1][j + 1] == '*') count++; if (i + 1 < grid.length && grid[i + 1][j - 1] == '*') count++; return count; } // ������������������ private static void printResultArray(char[][] array) { for (char[] row : array) { System.out.println(String.valueOf(row)); } }}
������������
���������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
