北大侠客行MUD论坛

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

也许是最小巧的迷宫机器人(zmud7.21测试成功)

[复制链接]
发表于 2016-8-13 11:49:26 | 显示全部楼层 |阅读模式
本帖最后由 xufan 于 2016-8-13 03:59 AM 编辑

走迷宫什么的最费劲了 只好做个迷宫机器人
附件是class,在zmud--setting--import--script(ASCII)--固定迷宫专用。txt

使用说明:

1.你需要知道迷宫入口和出口的判断信息,做一个trigger,内容是finish=1

2.在迷宫入口处输入clsall,情况上一次的数据

3.输入gonext=你要走的第一个方向,默认是south

4.输入speed=      默认800

5.输入gom 开始

需要调用的参数说明

#var finish 0          //迷宫入口,出口,停止机器人标记
#var gonext south //告诉机器人下一步走哪个方向,如果入口第一步不是south需要手动调整
#var thisback {}    //当前房间的出口(就是来的方向)
#var mazein {}     //进入迷宫的路径数据库
#var mazeout {}   //返回迷宫的路径数据库
#var room {}        //当前房间信息数据库
#var tem {}          //临时数据
#var info {}          //当前房间信息
#var n {}             //gogo里面用来记录房间step的,gom里面没用到
#var speed 800     //走路速度,单位毫秒,最高50通过,再快zmud会抽筋


下面是代码和分析:gom

finish=0
#while @finish=0 {mazein=%push( @gonext, @mazein)      //将当前方向存入进迷宫数据库  
#exec @gonext                            //走一步
  #wa @speed                              //等一下,很重要,不然机器人会发狂
  opdir                                                   //调用方向变换“函数”
  mazeout=%push( @thisback, @mazeout) //讲当前出口存入出迷宫数据库
  #if @finish=1 {#break}                           //出迷宫或者停止迷宫标记
  info=%additem( @thisback, @info)                       
  info=%delitem( @thisback, @info)           //讲进来的方向调到最后以免机器人来回走
  gonext=@info.1                                    //告诉机器人下一步走哪里
  room=%push( @info, @room)                //记录当前信息到迷宫数据库
  #while %numitems( @room.1)=1 {         //如果当前房间是死路,执行下面的循环
    #exec %pop( room)                             //回走一步,并从迷宫数据库删掉当前房间信息
    #wa @speed
    tem=%pop( mazein)                                            
    tem=%pop( mazeout)                           //删掉当前进出迷宫路径信息
    tem=%pop( room)                                //取出回走的房间信息
    gonext=%pop( tem)                                            
    gonext=@tem.1                                   //将走过的方向删除,并告诉机器人下一步走哪里   
room=%push( @tem, @room)                    //将当前房间更新后的信息存入迷宫数据库     
}
  }
#echo %ansi( blink, high, yellow)恭喜!你成功走出了迷宫!!!



感觉这已经是最精干的迷宫代码了

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-3-24 16:29:17 | 显示全部楼层
直接载入即可运行,非常实用。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-3-24 16:31:07 | 显示全部楼层
请教一下,这里是不是还有几个问题,
thisback是否需要把类似northwest这些方向的反向给加入?
另外,就是如果遇到拦路的如何处理。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-3-24 16:31:35 | 显示全部楼层
我要是知道路径要他干嘛
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-3-24 19:57:39 | 显示全部楼层
#ALIAS opdir {#if @gonext=east {thisback=west};#if @gonext=west {thisback=east};#if @gonext=north {thisback=south};#if @gonext=south {thisback=north}
这个机器人是这样做反向的,我认为应该把其它的对应关系也加进去。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 03:54 AM , Processed in 0.009952 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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