django 发表于 2017-4-15 02:06:42

[python]有向图及最短路径

有向图,用dict实现,如下以杨州生成的部分有向图
{'24': {u'23': u'west'}, '25': {u'23': u'south'},
'26': {u'1': u'west', u'31': u'east', u'27': u'north', u'30': u'south'},
'27': {u'26': u'south', u'28': u'north', u'29': u'west'},
'20': {u'19': u'east'}, '21': {u'19': u'west'},
'22': {u'19': u'down'},
'23': {u'24': u'east', u'25': u'north', u'12': u'south'},
'28': {u'27': u'south'}, '29': {u'27': u'east'},
'4': {u'1': u'south', u'10': u'southeast', u'12': u'north', u'5': u'west', u'7': u'east'},
'8': {u'9': u'enter', u'7': u'down'},
'79': {u'75': u'west'}, '78': {u'75': u'east'}}
求两点的最短路径
def find_link(graph, start, end, path = []):
        start = str(start)
        end = str(end)
        path = path +
        if start == end: return path
        if not graph.has_key(start): return None
        shortest = None
        for node, value in graph.items():
                if node not in path:
                        newpath = find_link(graph, node, end, path)
                        if newpath:
                                if not shortest or len(newpath) < len(shortest):
                                        shortest = newpath
        return shortest
graph为如上所示的当前地图所有房间生成的有向图
start为起点,end为终点

因rules所限,无法畅所欲言

北大侠客行MUD,中国最好的MUD

suwuji 发表于 2017-4-15 08:33:19

不错

jackhu 发表于 2017-10-20 01:19:19

楼主,我是刚开始学习PYTHON(从零开始)呵呵,想着学习之余在北侠MUD里练习练习,但现在第一步卡在了MUSH好像不支持PYTHON3,不知道楼主用的是2还是3,想请教一下是如何配置的?

nmee 发表于 2017-10-23 02:46:33

为啥我的 print 不能显示在 mush 的 output 窗口?
只能用 world.note()了。
有谁知道解决办法吗?

musasi 发表于 2017-10-24 17:05:11

发gps全代码上来都是允许的,只要不带房间数据就行了。
坛子里早就有多个lua版的gps了,楼主就放心大胆得发出来吧

yvetchan 发表于 2017-12-18 11:48:40

回复 3# jackhu


    能用3,但是只能用32位的,要先装pywin32并且注册pyscript

skygb 发表于 2018-11-12 08:46:53

求教:
python3.6 当 import 时,只能自动导入一次脚本。再次导入时,报错。 关闭mushclient ,重新打开就没有问题了,是哪里的问题???
页: [1]
查看完整版本: [python]有向图及最短路径