资源简介
寻路.py
代码片段和文件信息
# 一个小地图的信息
class Point:
“““表示一个点“““
def __init__(self x y):
self.x = x
self.y = y
def __eq__(self other):
if self.x == other.x and self.y == other.y:
return True
def __str__(self):
return “x:“ + str(self.x) + “,y:“ + str(self.y)
# 自动寻路
class AStar:
“““A*算法python“““
class Node: # 描述AStar算法中的节点数据
def __init__(self point endpoint G=0):
self.point = point # 自己的位置(array)
self.father = None # 父节点
self.G = G # g值,g值用到会重新计算
self.H = (abs(endpoint.x - point.x) + abs(endpoint.y - point.y)) * 10
def __init__(self map2d startpoint endpoint passtag=96):
“““
构造A*算法的启动条件
:param map2d: Array2D类型的寻路数组
:param startPoint: Point或二元组类型的寻路起点
:param endPoint: Point或二元组类型的寻路终点
:param passTag: int类型的可行走标记(若地图数据!=passTag即为障碍)
“““
# 开启表
self.openlist = []
# 关闭表
self.closelist = []
# 寻路的地图
self.map2d = map2d
self.width self.height = map2d.shape[:2]
# 起点终点
if isinstance(startpoint Point) and isinstance(endpoint Point):
self.startpoint = startpoint
self.endpoint = endpoint
else:
self.startpoint = Point(*startpoint)
self.endpoint = Point(*endpoint)
# 不可行走标记
self.passtag = passtag
def getMinNode(self):
“““获得poenlist中F值最小的节点“““
cur_node = self.openlist[0]
for node in self.openlist:
if node.G + node.H < cur_node.G + cur_node.H:
cur_node = node
return cur_node
# 判断自己坐标在不在关闭表
def pointCloseList(self point):
for node in self.closelist:
if node.point == point:
return True
return False
# 查找开启表中有没有自己的坐标
def pointOpenList(self point):
for node in self.openlist:
if node.point == point:
return node
return None
# 判断是否是终点
def endPointCloseList(self):
for node in self.openlist:
if node.point == self.endpoint:
return node
return None
def searchNode(self minF offset_x offset_y):
“““
搜索节点周围的点
:param minF:F值最小的节点
:param offset_x:坐标偏移量
:param offset_y:
:return:
“““
# 越界检测
if minF.point.x + offset_x < 0 \
or minF.point.x + offset_x > self.width - 1 \
or minF.point.y + offset_y < 0 \
or minF.point.y + offset_y > self.height -
- 上一篇:pb模型文件进行前向预测亲测可用
- 下一篇:Python文字识别
相关资源
- CpuMemSets在Linux操作系统中的实现
- Python学习全系列教程永久可用
- 蓝奏云批量上传工具.zip
- python书籍 PDF
- 老男孩python项目实战
- Python.rar99111
- decision_tree_v2.py
- Python绝技运用Python成为顶级黑客.pdf
- python小波包文档及论文.zip
- Python黑帽子(黑客与渗透测试编程之
- FlaskWeb开发:基于Python的Web应用开发实
- Python基础教程第3版中英文源码.rar
- python数据结构与算法中文版.zip
- Python-冲顶大会芝士超人西瓜视频头脑
- time_series_forecasting_with_python.zip
- Python基础教程第三版PDF高清可复制.
- python编程从入门到实践.zip237878
- FlaskWeb开发:Python基于Web应用开发实战
- pythonBCRMDSJ.mobi
- 量化交易之路用Python做股票量化分析
- PYTHON自然语言处理中文版.pdf
- Python基础教程(第3版).rar
- GRAYHATPYTHON高清.英文.书签版.pdf
- Python简明教程第四版.rar
- Python编程:从入门到实践带书签完整
- Python基础教程(第3版).pdf109608
- vamei-从Python开始学编程.pdf
- 利用Python进行数据分析.pdf
- 小甲鱼零基础学python课后习题和答案
- Python编程:从入门到实践-PythonCrashC
评论
共有 条评论