import matplotlib.pyplot as plt import numpy as np from matplotlib.pyplot import MultipleLocator import copy import pylab import random network = [[0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0], [0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0], [0,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0], [0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0], [1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0], [1,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0], [1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0], [1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0], [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0], [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0], [1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0], [1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1], [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,0], [0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0]] def return_axis(path):# 将坐标转换为axis path_x = [] path_y = [] for item in path: path_x.append(item[0]) path_y.append(item[1]) return path_x, path_y def draw(network, path): n = len(network) network_draw = np.zeros((n,n)) for i in range(n):# 换色 for j in range(n): if network[i][j] == 0: network_draw[i][j] = 1 else: network_draw[i][j] = 0 mat = np.array(network_draw) plt.matshow(mat, cmap=plt.cm.gray)# 着色,黑白灰 x = np.array(range(n)) y = x for item in path: pylab.scatter(item[0], item[1],color='green')# 画点 path_x, path_y = return_axis(path) plt.plot(path_x, path_y, 'g-', color='green')# 画折线 # pylab.xticks(x) # pylab.yticks(y) # plt.grid() plt.show() def accord(network, point, dx, dy, path):# 下一跳符合矩阵条件,且不在路径中、不为墙 n = len(network) # print(point,dx,dy,path) next_x = point[0] + dx next_y = point[1] + dy # print([next_x, next_y],path,True) if next_x >= 0 and next_x < n and next_y >=0 and next_y < n and / network[next_x][next_y] != 1 and [next_x, next_y] not in list(path): return True return False path = [[0,0],[1,0],[2,0],[3,0],[3,1],[3,2],[3,3],[3,4],[4,4],[5,4],[5,5], [5,6],[5,7],[6,7],[7,7],[8,7],[9,7],[10,7],[11,7],[12,7],[13,7], [13,8],[13,9],[13,10],[13,11],[13,12],[13,13],[13,14],[14,14], [15,14],[15,15],[15,16],[15,17],[15,18],[15,19],[16,19],[17,19], [18,19],[19,19]] draw(network, path)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/281736.html