在弄清楚如何创建将填充所有空白字段并在2D列表游戏板上显示我的线索的递归函数时遇到麻烦。我了解该功能应该如何运行,但似乎仍然无法解决问题。
我一直试图让我的函数调用递归调用,直到它在行中找到整数为止,然后继续下一行。 我知道我应该把我的线索告诉董事会,以便递归调用知道何时到达整数,只是不确定如何去做。
目前这就是我所拥有的;
def island(board, row, col):
if board[row][col] != " ":
board[row][col] = " "
if row != 1:
island(board,row-1,col)
if row != maxRow:
island(board,row+1,col)
if col != maxCol:
island(board,row,col+1)
if col != 1:
island(board,row,col-1)
上面发布的代码的结果将按照当前代码的要求清除整个电路板
播放第4行,第2列之类的字段时的预期结果是:
1 2 3 4 5 6 7 8
# # # # # # # # # #
1 # . . . . . . . . #
2 # 1 1 1 1 . . . . #
3 # 2 . . . . #
4 # 1 . . . . . #
5 # 1 . . . . . #
6 # 1 . . . . . #
7 # 1 . . . . . . #
8 # 1 1 . . . . . . #
###################
播放第4行第2列时的实际结果;
1 2 3 4 5 6 7 8
# # # # # # # # # #
1 # #
2 # #
3 # #
4 # #
5 # #
6 # #
7 # #
8 # #
# # # # # # # # # #
答案 0 :(得分:0)
您只会在洪水填充中向上和向左移动。您还需要左右移动。
if row != max_row: # Look down
island(board,row+1,col)
if col != max_col: # Look right
island(board,row,col+1)