跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Cerulean)
  • 不使用皮肤
折叠
品牌标识

PyMUD官方论坛

  1. 主页
  2. 版块
  3. PyMUD讨论区
  4. 初探pymud的自动地图功能

初探pymud的自动地图功能

已定时 已固定 已锁定 已移动 PyMUD讨论区
9 帖子 2 发布者 252 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • T 离线
    T 离线
    terry
    写于 最后由 编辑
    #1

    抛砖引玉,我现在是不会啊,等大佬现身说法

    1 条回复 最后回复
    0
    • N 离线
      N 离线
      newstart
      写于 最后由 编辑
      #2

      pymud没有自动地图功能,但是你可以用python自己实现😀

      T 1 条回复 最后回复
      0
      • N newstart

        pymud没有自动地图功能,但是你可以用python自己实现😀

        T 离线
        T 离线
        terry
        写于 最后由 编辑
        #3

        @newstart 就是这意思,基于pymud实现自动地图功能

        1 条回复 最后回复
        0
        • T 离线
          T 离线
          terry
          写于 最后由 编辑
          #4

          探索地图流程图

          e19719b6-7084-49d4-ae0a-850f2d0c9515-image.png

          1 条回复 最后回复
          0
          • T 离线
            T 离线
            terry
            写于 最后由 编辑
            #5

            实践证明这个方法无效,无法完成那种两个房间的连接不是互逆的情况

            1 条回复 最后回复
            0
            • N 离线
              N 离线
              newstart
              写于 最后由 编辑
              #6

              图片有点模糊,看不清楚

              1 条回复 最后回复
              0
              • T 离线
                T 离线
                terry
                写于 最后由 编辑
                #7

                从开始着手自动画地图,到今天基本上完成,足足用了6周,可最开始竟然企图一周完成
                总体来说,之前的框图的算法是对的,但由于对西游记mud本身的不了解走了很多弯路
                现在告一段落,也该总结一下了

                1 条回复 最后回复
                0
                • T 离线
                  T 离线
                  terry
                  写于 最后由 terry 编辑
                  #8

                  5c08ce7c-7c17-4fea-9570-fc82eecfee39-image.png

                  1 条回复 最后回复
                  1
                  • T 离线
                    T 离线
                    terry
                    写于 最后由 terry 编辑
                    #9

                    以下为过程中的一些心得:
                    1 . 探索地图和使用已经被证明是正确的地图是完全两回事,探索过程中进入任何房间即使所有信息一致,也得证明它是新房间还是已经探明的房间。
                    2. 房间之间的连接不全都是互逆的,有些出口是单向的。
                    3. 房间允许看向四周获得信息,这些信息对辅助定位非常重要。把这些可以获得的信息整合到一起,用特定顺序组织后转换为哈希码,作为该房间的身份签名(signature),这个签名有不同的等级,可分为房间名、房间描述+出口、周围房间名+出口、周围房间名+描述+出口,房间签名用于比对两个房间是不是同一个房间。
                    4. 有些房间并非一成不变的,它可以自己随机变化,比如:骰子房,房间描述随着骰子的变化在不停的变化;有些房间描述会因为玩家的互动而变化。
                    5. 有些地图中的结构完全对称,即有些房间不但自身签名完全一致而且它周围房间的签名也完全一致,要探索很远才能确定它是哪一个。
                    6. 有些房间进入需要特定条件或被npc拦截,不过这个基于pymud的命令很好解决。
                    7. 迷宫内的房间和常规房间完全不同的逻辑,要提前提取迷宫入口特征,把对应的入口识别出来在代码中封住。
                    8. 深度优先排重需要角色可以回到备选房间,如果附近有单向出口,导致回溯失败会从而测绘出错。
                    9. 探索过程中对于可通过的连接,必须保证100%可以执行成功,这是探索地图的基石。
                    10. 如果对游戏了解,知道某些房间是独一无二的,即一旦进入就知道自己的位置,需要提前写进列表中,作为探索地图的锚点。
                    11. 原则上只相信通过移动而获得的连接,但为提高效率,把那些移动后彼此通过look可以确认互逆方向的房间签名匹配的连接直接写进数据库,而无需实际移动

                    1 条回复 最后回复
                    1
                    回复
                    • 在新帖中回复
                    登录后回复
                    • 从旧到新
                    • 从新到旧
                    • 最多赞同


                    • 登录

                    • 没有帐号? 注册

                    • 登录或注册以进行搜索。
                    Powered by NodeBB Contributors
                    • 第一个帖子
                      最后一个帖子
                    0
                    • 版块
                    • 最新
                    • 标签
                    • 热门
                    • 世界
                    • 用户
                    • 群组