当前位置: 首页 > news >正文

两个公司的网站建设建设工程合同管理的主要内容

两个公司的网站建设,建设工程合同管理的主要内容,主机屋vps网站助手,wordpress 添加js引用参考文章#xff1a;Behavior trees for AI: How they work (gamedeveloper.com) 本文主要参考上述weizProject Zomboid 的开发者 Chris Simpson文章的概念#xff0c;用伪代码实现代码例子 AI概述 游戏AI是对游戏内所有非玩家控制角色的行为进行研究和设计#xff0c;使得游…参考文章Behavior trees for AI: How they work (gamedeveloper.com) 本文主要参考上述weizProject Zomboid 的开发者 Chris Simpson文章的概念用伪代码实现代码例子 AI概述 游戏AI是对游戏内所有非玩家控制角色的行为进行研究和设计使得游戏内的单位能够感知周围环境并做出相应的动作表现的技术。游戏AI作为游戏玩法的一大补充在各种游戏中都有广泛的应用比如可以和玩家交互聊天的NPC按照特定规则寻路的怪物与玩家进行战斗对抗的机器人等。 目前实现游戏AI的算法有 有限状态机 AI行为树 还有其他比较少用的规则式AI甚至神经网络等   行为树AI基本概念 游戏行为树Behavior Trees, BT是一种用于游戏AI的设计模式。它通过模拟行为树来描述AI的行为和决策过程以实现更加智能和自然的游戏AI。 游戏行为树由多个节点组成每个节点代表一个行为或决策。它们按照特定的方式连接在一起形成一个树状结构。在行为树中根节点是AI的起点通过遍历子节点来决策AI的行为。 节点有以下三种状态 成功 success 失败 failure 运行 running 行为树节点有三种主要原型 组合控制节点 -Composite 一种将多个子节点组合在一起的节点用于实现复杂的行为和决策逻辑 主要包括 次序节点-Sequences并行执行多个子节点直到所有子节点都返回True或者任意一个子节点返回False为止 选择节点-Selector按照顺序执行子节点当某个子节点返回success时停止执行并返回success 修饰节点-Decorator 一种特殊的节点它不执行具体的行为或决策而是修饰其它节点的行为或决策 主要包括 逆变节点-Inverter它可以将子节点的结果倒转比如子节点返回了 Failure则这个修饰节点会向上返回 Success以此类推。 重复节点-Repeater重复执行其子节点指定的次数或者一直重复执行直到其子节点返success或者failure 叶节点-Leaf 树的最末端——叶子就是这些 AI 实际上去做事情的命令或者是做一些判断 主要包括 条件节点-Condition判断条件是否满足如果满足则返回success否则返回failure 行为节点-Action执行某个具体的动作或行为例如移动、攻击、使用技能等 节点表示 次序节点 -Walk to Door (Success) -次序节点Running -Open Door (Success)  -次序节点运行中 -Walk through Door (Success) -次序节点Running -Close Door (Success) -次序节点Running - 向次序节点的父节点返回 Success。 例如考虑上一节中提到的逆变器装饰器 在功能上与前面的示例相同这里我们展示了如何使用逆变器来否定任何测试从而为您提供一个 NOT 门。这意味着你可以大幅减少测试角色或游戏世界条件所需的节点数量。 三、伪代码实现 节点基类 # 行为树节点基类 class BaseNode(object):def __init__(self):self.status None # 节点的执行结果: 成功 success 失败 failure 运行 runningdef execute(self, who):# 执行pass 叶子节点行为节点 # 叶子节点-行为节点吃食物 class EatFoodNode(BaseNode):def __init__(self, target):super(EatFoodNode).__init__()self.target target # 食物目标def execute(self, who):# 吃食物# who.eat_foot(self.target)self.status success# 叶子节点-行为节点打开门 class OpenDoorNode(BaseNode):def __init__(self, target):super(OpenDoorNode).__init__()self.target target # 打开目标def execute(self, who):# 执行打开门动作# who.open_door(self.target)self.status success 叶子节点条件节点 # 叶子节点-条件节点检查是否饥饿 class CheckHungryNode(BaseNode):def __init__(self, hungry_val):super(CheckHungryNode).__init__()self.hungry_val hungry_val # 生命值阈值def execute(self, who):# 检查生命值是否小于阈值if self.hungry_val who.hungry_val:self.status successelse:self.status failure# 叶子节点-条件节点检查是否有食物 class CheckHasFoodNode(BaseNode):def __init__(self, food):super(CheckHasFoodNode).__init__()self.food food # 目标食物def execute(self, who):# 检查目标距离是否小于最大距离if who.has_food(self.food):self.status successelse:self.status failure# 叶子节点-条件节点敌人是否在周围 class CheckEnemiesAroundNode(BaseNode):def __init__(self, enemies):super(CheckEnemiesAroundNode).__init__()self.enemies enemies # 敌人def execute(self, who):# 敌人是否在周围if who.AroundHasEnemies(self.enemies):self.status successelse:self.status failure 组合控制节点序列节点 # 组合控制节点序列节点 class SequenceNode(BaseNode):def __init__(self, children):super(SequenceNode).__init__()self.children children # 子节点列表def execute(self, who):for child in self.children:child.execute(who)if child.status failure:self.status failurereturnself.status success 组合控制节点选择节点 # 组合控制节点选择节点 class SelectorNode(BaseNode):def __init__(self, children):super(SelectorNode).__init__()self.children childrendef execute(self, who):for child in self.children:child.execute(who)if child.status success:self.status successreturnself.status failure 装饰节点逆变节点 # 装饰节点逆变节点 class NOT_DecoratorNode(BaseNode):def __init__(self, child):super(DecoratorNOT).__init__()self.child childdef execute(self, who): status self.child.execute(who)if status successself.status failureelif status failure:self.status success 例子一 饥饿的时候且有食物的时候没有敌人在周围就吃食物 # 角色对象 class Player(object):def __init__(self):self.hungry_val 0 # 饥饿度self.food fish # 食物def main():# 首先定义行为树的结构root SequenceNode([# 饥饿的时候CheckHungryNode(50),# 有鱼时候CheckHasFoodNode(fish),# 敌人不在周围NOT_DecoratorNode(CheckEnemiesAroundNode(李宏伟)),# 老墨吃鱼EatFoodNode(fish),])who Player()# 然后在主循环中执行行为树while True:# 执行行为树root.execute(who)# 根据行为执行结果更新状态if root.status success:who.hungry_val random.randint(1, 100)who.food random.randint(1, 100)# 等待一段时间后再次执行行为树time.sleep(1) 例子二 # 行为树的结构如下root SequenceNode([WalkToDoor(),SelectorNode([OpenDoor(),SequenceNode([UnlockDoor(),OpenDoor(self),]),SmashDoor(),]),WalkThroughDoor(),CloseDoor(), ])
http://www.hkea.cn/news/14471901/

相关文章:

  • 做淘宝客如何建立网站重庆网站建设运营
  • 公司网站怎样备案网站关键字语法
  • 乐器产品主要在什么网站做推广张家港建网站
  • 网站双域名 登陆网站开发用什么编程语言
  • 微信对接网站可以做301跳转吗网页设计与制作教程书
  • 网站解析后显示在建设中最吉利旺财的公司名字
  • 怎么做网站弹窗微平台登录
  • 河南省建设厅村镇建设处网站百度 网站添加
  • 网站seo外链怎么做办公室装修设计图片
  • 游戏咨询网站建设目标是什么免费发布信息平台有哪些
  • 动态asp.net网站开发辽宁网络推广公司
  • 大型网站系统图旅游网站logo
  • 自适应营销网站网站建设职员
  • 网站对品牌的作用手机网站的域名
  • 医疗机构 网站备案成都建设网上办事大厅
  • 做网站最小的字体是多少随州网站推广哪家好
  • 山东建设网站营销型网站和普通网站的区别
  • 网站对企业的作用jsp类型网站托管费用
  • python做的网站北京网站开开发公司
  • 淘宝开网站建设店铺分析多用户商城系统价格
  • i深建官方网站网站广告出价平台
  • 网站首页引导页模版在线设计的软件
  • 佛山技术支持 骏域网站建设网站内容有什么
  • 网站建设分享芜湖市建设厅网站
  • 公司网站建设注册免费建设一个网站
  • 煎蛋网站用什么做的一般做个小程序多少钱
  • 友情链接出售郑州厉害的seo优化顾问
  • 荣耀手机商城官方网站thinkphp做网站好吗
  • 常用的网站开发技术有哪几种河北建设广州分公司网站
  • 电影网站建设目的做PPT素材用到的网站