跳转到主要内容

Python行为树

项目描述

misbehave

Misbehave是一个Python行为树实现。行为树是一种设计模式,它将复杂的状态行为分解为其组成部分,以提高自主代理的可读性和可重用性。了解它们的好地方是这里

Misbehave专注于Python语言特性,这些特性在其他语言中不可用,因此默认情况下缺少了AI设计的一些常见功能。其余部分对此语言做了轻微的说明,因为行为树可以用于视频游戏或机器人。

如何使用Misbehave

Misbehave行为树中的一个节点简单地是一个可调用对象。虽然这个库提供的节点是类,但您可以使用函数或闭包来定义它们。

节点函数的签名很简单

def MyNode(actor: Any, context: Any) -> misbehave.State
    # Perform actions here.

演员是一个代表行为树控制的物体的对象。在视频游戏中,这将是一个怪物对象。

上下文可用于提供对传感器、控制、代表空间中事物的其他代码对象等的访问。如果您不需要它们,可以在这里传递None。

您的代码中的树可能看起来像这样

class MyActor():
    tree = misbehave.selector.Sequence(
        misbehave.action.IncreaseValue("behavior_tree_runs"),
        my_actions.MoveForward(10),
        my_actions.Rotate(90)
    )
    behavior_tree_runs = 0

这个简单的树跟踪整个树运行了多少次,然后使演员在正方形中移动。您必须在这里实现动作的具体细节。

开发

运行Misbehave需要Python 3.6或更高版本。

要在Misbehave上工作,在分叉并本地克隆后,您需要设置一个虚拟环境。您会发现我们没有任何需求文件:所有需求都在setup.cfg中列出,要么作为setup_requires,要么作为extras。

在您的项目目录中,且虚拟环境已激活

python -m pip install -e .[dev, tests]

如果您没有对misbehave进行可编辑安装,那么misbehave.version将缺失,库将无法正常工作。

除此之外,我们已经准备好支持PEP 518和517,所以如果您使用的是支持这些规范的构建工具,请随意使用!

强烈建议您在提交任何工作分支之前,在misbehave目录上运行black,然后运行pytest。未能进行代码审查将导致PR不被接受。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

misbehave-0.1.4.tar.gz (17.6 kB 查看哈希)

上传时间

构建分发

misbehave-0.1.4-py3-none-any.whl (10.8 kB 查看哈希)

上传时间 Python 3

由以下支持