北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 8302|回复: 6

[python]有向图及最短路径

[复制链接]
发表于 2017-4-15 02:06:42 | 显示全部楼层 |阅读模式
有向图,用dict实现,如下以杨州生成的部分有向图

  1. {'24': {u'23': u'west'}, '25': {u'23': u'south'},
  2. '26': {u'1': u'west', u'31': u'east', u'27': u'north', u'30': u'south'},
  3. '27': {u'26': u'south', u'28': u'north', u'29': u'west'},
  4. '20': {u'19': u'east'}, '21': {u'19': u'west'},
  5. '22': {u'19': u'down'},
  6. '23': {u'24': u'east', u'25': u'north', u'12': u'south'},
  7. '28': {u'27': u'south'}, '29': {u'27': u'east'},
  8. '4': {u'1': u'south', u'10': u'southeast', u'12': u'north', u'5': u'west', u'7': u'east'},
  9. '8': {u'9': u'enter', u'7': u'down'},
  10. '79': {u'75': u'west'}, '78': {u'75': u'east'}}
复制代码
求两点的最短路径

  1. def find_link(graph, start, end, path = []):
  2.         start = str(start)
  3.         end = str(end)
  4.         path = path + [start]
  5.         if start == end: return path
  6.         if not graph.has_key(start): return None
  7.         shortest = None
  8.         for node, value in graph[start].items():
  9.                 if node not in path:
  10.                         newpath = find_link(graph, node, end, path)
  11.                         if newpath:
  12.                                 if not shortest or len(newpath) < len(shortest):
  13.                                         shortest = newpath
  14.         return shortest
复制代码
graph为如上所示的当前地图所有房间生成的有向图
start为起点,end为终点

因rules所限,无法畅所欲言

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-4-15 08:33:19 | 显示全部楼层
不错
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-10-20 01:19:19 | 显示全部楼层
楼主,我是刚开始学习PYTHON(从零开始)呵呵,想着学习之余在北侠MUD里练习练习,但现在第一步卡在了MUSH好像不支持PYTHON3,不知道楼主用的是2还是3,想请教一下是如何配置的?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-10-23 02:46:33 | 显示全部楼层
为啥我的 print 不能显示在 mush 的 output 窗口?
只能用 world.note()了。
有谁知道解决办法吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-10-24 17:05:11 | 显示全部楼层
发gps全代码上来都是允许的,只要不带房间数据就行了。
坛子里早就有多个lua版的gps了,楼主就放心大胆得发出来吧
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-12-18 11:48:40 | 显示全部楼层
回复 3# jackhu


    能用3,但是只能用32位的,要先装pywin32并且注册pyscript
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2018-11-12 08:46:53 | 显示全部楼层
求教:
python3.6 当 import 时,只能自动导入一次脚本。再次导入时,报错。 关闭mushclient ,重新打开就没有问题了,是哪里的问题???
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-12-1 03:20 AM , Processed in 0.011149 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表