Path: blob/master/公开课/第06次公开课-算法入门系列2-在水一方/code/example04.py
3076 views
"""1骑士巡逻2"""3import sys45SIZE = 8678def display(board):9"""显示棋盘"""10for row in board:11for col in row:12print(f'{col}'.rjust(2, '0'), end=' ')13print()141516def patrol(board, i=0, j=0, step=1):17"""巡逻"""18if 0 <= i < SIZE and 0 <= j < SIZE and board[i][j] == 0:19board[i][j] = step20if step == SIZE * SIZE:21display(board)22sys.exit(0)23patrol(board, i + 1, j + 2, step + 1)24patrol(board, i + 2, j + 1, step + 1)25patrol(board, i + 2, j - 1, step + 1)26patrol(board, i + 1, j - 2, step + 1)27patrol(board, i - 1, j - 2, step + 1)28patrol(board, i - 2, j - 1, step + 1)29patrol(board, i - 2, j + 1, step + 1)30patrol(board, i - 1, j + 2, step + 1)31board[i][j] = 0323334def main():35"""主函数"""36board = [[0] * SIZE for _ in range(SIZE)]37patrol(board)383940if __name__ == '__main__':41main()424344