Skip to main content

NoneBot2交互式走迷宫插件

Project description

nonebot

Nonebot_Plugin_Maze

✨ 基于OneBot适配器的NoneBot2交互式解迷宫插件 ✨

功能

  • 可指定大小与算法生成迷宫
  • 以文字消息作为交互形式解迷宫
  • 游戏过程中可随时退出

安装

  • 使用 nb-cli
nb plugin install nonebot_plugin_maze
  • 使用 pip
pip install nonebot_plugin_maze

获取插件帮助

如何使用

.env 配置项

min_maze_rows = 13            # 迷宫最小行数
max_maze_rows = 35            # 迷宫最大行数
min_maze_cols = 13            # 迷宫最小列数
max_maze_cols = 35            # 迷宫最大列数
default_maze_rows = 18        # 迷宫默认生成行数
default_maze_cols = 27        # 迷宫默认生成列数

各配置项的含义与默认值如上。

  • 对于以上配置项,规定需同时满足min_maze_rows <= default_maze_rows <= max_maze_rows以及min_maze_cols <= default_maze_cols <= max_maze_cols

  • 因此,在修改一些配置项时可能强制需要连着某些其他的配置项一起修改。

  • 同时,建议不要把最小行数/列数设置为小于10的值,以免引发未知错误

    • 也建议不要把最大行数/列数设置过大,例如50以上,第一是因为资源占用问题,第二是因为生成个那么大的迷宫有谁愿意玩啊喂

开始游戏

使用以下命令触发,需加上命令前缀!

maze [-r --rows <ROWS>] [-c --cols <COLUMNS>] [-m --method <ALGORITHM>]
  • 可使用-r规定迷宫的行数,-c规定迷宫的列数

    • 以上两项参数的范围和默认值参考.env文件中的相关配置项。
  • 可使用-m规定迷宫的生成算法,目前支持DFSPrimKruskal三种算法,默认值为Kruskal,检测此参数时对大小写不敏感。

如何进行游戏

在用户发送指令获取到初始迷宫后,我们终于可以开始愉快地游戏了!

用户需要持续发送操作序列以在迷宫中移动,直到解开迷宫。

至于操作序列是什么,让我们先来定义操作。

  • 我们定义一个操作的格式为方向+步数,用正则表达就是[UDLR]\d*,用阳间方法表达的话就是U(up)|D(down)|L(left)|R(right) + steps步数可以留空以表示一步。

  • 例如RD3L1就是几个合法的操作,分别表示右移一步,下移三步,左移一步。

    • 注意:单个操作中步数大于10是不合法的,例如D11R18
    • 识别操作时对大小写不敏感
    • 为避免频繁数格子的问题,我们定义一步为沿该方向的路径一直走,直到遇见死路或走到岔路口,有可能拐弯。

有了操作是什么,我们就可以定义操作序列了。

  • 顾名思义,操作序列就是n(n≥1)个操作组合而成的序列,以字符串的形式表达。

  • 例如R2D3RU2LD2R4就是一个合法的操作序列,含义不必赘述。

    • 注意:单个操作序列中所有操作步数总和不可大于50,例如R10D10R10U10L10D是不合法的。

游戏中觉得太耗时间?迷宫太难解不出来?不想玩了?

  • 可以在游戏过程中随时发送结束或者quit以结束游戏并获取参考解法。

演示

只用文字描述往往十分吃力,废话不多说,上Demo:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_maze-0.2.1.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_maze-0.2.1-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page