Fetch the repository succeeded.
package question;
/*
@author: Roderland
@create: 2020-09-15---23:13
*/
public class Question529 {
public static void main(String[] args) {
char[][] board = {{'E', 'E', 'E', 'E', 'E'},
{'E', 'E', 'M', 'E', 'E'},
{'E', 'E', 'E', 'E', 'E'},
{'E', 'E', 'E', 'E', 'E'}};
int[] click={3,0};
System.out.println(new Question529().updateBoard(board, click));
}
char[][] board;
public char[][] updateBoard(char[][] board, int[] click) {
this.board=board;
if (this.board[click[0]][click[1]]=='M') {
this.board[click[0]][click[1]]='X';
return this.board;
}
this.board[click[0]][click[1]]=getFlag(click[0], click[1]);
if (this.board[click[0]][click[1]]=='B') fun(click[0], click[1]);
return this.board;
}
public void fun(int i, int j) {
if (j+1<board[i].length&&board[i][j+1]=='E') {
board[i][j+1]=getFlag( i, j+1);
if (board[i][j+1]=='B') fun(i, j+1);
}
if (j+1<board[i].length&&i+1<board.length&&board[i+1][j+1]=='E') {
board[i+1][j+1]=getFlag(i+1, j+1);
if (board[i+1][j+1]=='B') fun(i+1, j+1);
}
if (i+1<board.length&&board[i+1][j]=='E') {
board[i+1][j]=getFlag(i+1, j);
if (board[i+1][j]=='B') fun(i+1, j);
}
if (i+1<board.length&&j-1>=0&&board[i+1][j-1]=='E') {
board[i+1][j-1]=getFlag(i+1, j-1);
if (board[i+1][j-1]=='B') fun(i+1, j-1);
}
if (j-1>=0&&board[i][j-1]=='E') {
board[i][j-1]=getFlag(i, j-1);
if (board[i][j-1]=='B') fun( i, j-1);
}
if (j-1>=0&&i-1>=0&&board[i-1][j-1]=='E') {
board[i-1][j-1]=getFlag(i-1, j-1);
if (board[i-1][j-1]=='B') fun(i-1, j-1);
}
if (i-1>=0&&board[i-1][j]=='E') {
board[i-1][j]=getFlag(i-1, j);
if (board[i-1][j]=='B') fun( i-1, j);
}
if (i-1>=0&&j+1<board[i].length&&board[i-1][j+1]=='E') {
board[i-1][j+1]=getFlag(i-1, j+1);
if (board[i-1][j+1]=='B') fun( i-1, j+1);
}
}
private char getFlag(int i, int j) {
int count = 0;
if (i+1<board.length&&board[i+1][j]=='M') count++;
if (i+1<board.length&&j+1<board[i].length&&board[i+1][j+1]=='M') count++;
if (j+1<board[i].length&&board[i][j+1]=='M') count++;
if (i-1>=0&&board[i-1][j]=='M') count++;
if (j-1>=0&&board[i][j-1]=='M') count++;
if (i-1>=0&&j-1>=0&&board[i-1][j-1]=='M') count++;
if (i+1<board.length&&j-1>=0&&board[i+1][j-1]=='M') count++;
if (i-1>=0&&j+1<board[i].length&&board[i-1][j+1]=='M') count++;
if (count==0) return 'B';
return (char) (48+count);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。