扫雷游戏 and Java题解 <随缘学习>
发布日期:2021-05-10 03:40:43 浏览次数:19 分类:精选文章

本文共 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));
}
}
}

������������

  • createInitialArray������������������������������������������������������������������������������������
  • computeResultArray���������������������������������������������������������������������������
  • countMines������������������������������������������������
  • printResultArray������������������������������
  • ���������������������������������������������������������������������������������������������������������������������

    上一篇:明明的随机数 and Java题解 <随缘学习>
    下一篇:map简单应用

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月01日 12时09分40秒