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);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。