我的 tintin++ 机器人终于也可以用 GPS 了, 主要是用 python 写的, 并且和 tintin++ 配合工作.
这个版本的 GPS 寻路时支持权重, 并且用户可以在 setting 中设置这些权重. 例如, 默认设置了这些权重:
// 出口有人堵路
set gps.weight.clear 10;
// 要过河
set gps.weight.guohe 50;
// 有延迟, 例如金牛道
set gps.weight.delay 5;
// 要坐车
set gps.weight.zuoche 20;
权重越高越不容易被选择. 实现原理类似于在水面上抛两个石子, 然后波纹会因为权重的原因不再是同心圆...有权重的点会有限的阻碍波纹的传播而
形成一个凹形的波纹.
权重是一个很有用的概念, 例如用户如果想省时间不坐船, 可以把 gps.weight.guohe 设置为一个较大的值. 用户如果有长袖, 可以设置 gps.weight.clear
为一个较小的值, 如果是土豪, 可以选择多坐车..., 包括晚上的北京城墙也可以使用权重来处理.
如果要尝试, 可以 git clone https://github.com/sunwayforever/pkuxkx.git, 然后在程序中使用 "gps.gt <房间号或房间名称>"
具体的代码位于 bin/gps 下 (python 脚本) 和 plugin/gps.tin
1. 寻路部分代码是参考的论坛上提到的那个"两个点同时遍历求交点"的方法, 我图简单用递归写了, 并且有许多 sql 语句.
性能可能有问题 ..., 而且我也没有仔细考虑过程序的正确性, 反正目前是可以工作的.
2. 数据库部分, 由于机器人管理的规定, 我的 github 仓库中只包含一个 sample 数据库, 完整的数据库不共享...
北大侠客行MUD,中国最好的MUD |