主页 > 手机  > 

floodfill算法系列一>扫雷游戏

floodfill算法系列一>扫雷游戏

目录 题目思路:代码设计:代码呈现:

题目思路:

代码设计:

代码呈现: class Solution { int m,n; int[] dx = {0,0,-1,1,-1,-1,1,1}; int[] dy = {-1,1,0,0,-1,1,-1,1}; public char[][] updateBoard(char[][] board, int[] click) { m = board.length; n = board[0].length; int x = click[0], y = click[1]; //直接点到地雷 if(board[x][y] == 'M'){ board[x][y] = 'X'; return board; } dfs(board,x,y); return board; } private void dfs(char[][] board, int i, int j){ //统计周围地雷的个数 int count = 0; for(int k = 0; k < 8; k++){ int x = i + dx[k]; int y = j + dy[k]; if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'M'){ count++; } } //去遍历未挖出的空方块 //周围没有地雷 if(count == 0){ board[i][j] = 'B'; for(int k = 0; k < 8; k++){ int x = i + dx[k]; int y = j + dy[k]; if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'E'){ dfs(board,x,y); } } }else { //有地雷:修改它周围地雷个数,并返回 board[i][j] = (char)(count + '0'); return; } } }
标签:

floodfill算法系列一>扫雷游戏由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“floodfill算法系列一>扫雷游戏