`

有限状态机(Finite State Machine,FSM)

    博客分类:
  • AI
阅读更多

 

1、电脑角色行为

包括受电脑控制的角色、自动对手、帮助/指导者、旁观者等。

行为包括编好的对预期事件的反应(如星际争霸中士兵的战斗、农民的采矿)、角色与角色/环境之间的交互形成的突发行为。

实现行为的方法包括:基于规则建立有限状态机模型(通过查找表的 FSM 来定义角色行为,确定性)、基于目标定义及达到所需目标的解决办法(非确定性)。

 

2、有限状态机(FSM)

 

 

实际上开发者需要从玩家的角度来增大和减少它们的可预测性。

 

 

在任何一瞬间,状态机只能处于无限种状态中的一个状态,状态机可以处于现在的一个状态,也可以有逻辑的确定下一个状态。它对一个特定的输入产生一个特定的输出。

 

有 3 种关于有限状态机行为的模型:一个状态转移图的图形表示;一个以命令式语言表达的语句集合;一个包括了状态机和组合逻辑的硬件单元集合;

如老鼠走迷宫规则的状态转移:

向前 向右 向左 行动
open ---- ---- 向前移动
close open ---- 向右移动
close close open 向左移动
close close close 向后退
---- ---- ---- 停止移动

 

3、模糊状态机(Fuzzy State Machine,FuSM)

对一个特定的输入,可以产生一系列特定输出中的一个或任意选择,以实现不可预定的行为。每一次会产生一个不同的行为结果。

常常出现在伤害计算中,如对同一个怪物的攻击会出现正常攻击、致命一击、攻击失误等多种可能。

也可以通过给主体提供环境信息,对有限状态机提供输入以产生输出的状态转移。但随着行为越来越复杂,建立产生规则行为的难度也会越来越大。

  • 大小: 40.6 KB
  • 大小: 104.1 KB
分享到:
评论

相关推荐

    有限状态机Finite State Machine详细介绍

    ### 有限状态机Finite State Machine详细介绍 #### 一、有限状态机概述 有限状态机(Finite State Machine,简称FSM)是一种重要的时序逻辑模型,它广泛应用于计算机科学、电子工程等多个领域。有限状态机的基本...

    有限状态机(Finite State Machine, FSM).pdf

    ### 有限状态机(Finite State Machine, FSM):原理、设计与实践的深入探讨 #### 一、引言 有限状态机(Finite State Machine, FSM)作为一种数学模型,被广泛应用于计算机科学、电子工程、语言学等多个学科领域...

    通用有限状态机(FSM: Finite-state machine)自动代码生成器

    通用有限状态机(FSM: Finite-state machine)自动代码生成器. 可以根据配置文件,自动生成状态机代码(C++)。配置文件中只需要定义状态,跃迁条件。然后完善每个状态的动作即可。省去开发过程中手写状态机的麻烦。...

    状态机模式代码生成器 Finite State Machine Compiler

    Robert C. Martin做了两个自动产生FSM代码的工具,for ...这个工具的输入是纯文本的状态机描述,自动产生符合State Pattern的代码,这样developer的工作只需要维护状态机的文本描述,没必要冒引入bug的风险去维护code。

    VHDL.rar_Finite State Machine_movingaveragefilter_有限状态机_状态机

    在数字电路设计领域,有限状态机(Finite State Machine, FSM)是一种重要的逻辑设计方法,它被广泛应用于数据处理、通信协议、控制逻辑等系统中。本资料“VHDL.rar”着重介绍了如何使用VHDL语言来实现有限状态机,...

    一个简单,快速,有限状态机(fsm)C代码生成器simple finite state machine generator-开源

    有限状态机(Finite State Machine, FSM)是一种计算机科学中的模型,用于描述系统或程序在不同条件下的行为。在这个场景中,我们讨论的是一款名为“simple finite state machine generator”的开源工具,它是一个用...

    A simple C++ finite state machine library.zip

    在C++编程中,有限状态机(Finite State Machine, FSM)是一种重要的设计模式,它用于模拟具有固定数量状态的系统,这些状态之间可以相互转换。简单地说,有限状态机是根据输入或时间触发,从一个状态转换到另一个...

    Finite State Machine Datapath Design, Optimization, and Implementation

    《有限状态机数据路径设计、优化与实现》是一本深入探讨结合有限状态机(FSM)与数据路径实施的设计空间的专业书籍。该书由贾斯汀·戴维斯(Justin Davis)和罗伯特·里斯(Robert Reese)共同编写,于2008年由摩根...

    C语言高效有限状态机(FSM)详细设计说明书.docx

    有限状态机(Finite State Machine, FSM)是一种模型理论,它将一个系统的行为描述为一系列可切换的状态,以及这些状态之间的转换。这种模型在IT领域中广泛应用,特别是在嵌入式系统、软件工程、硬件设计、编译器...

    testSta状态机对应代码.rar_FSM_Finite-state machine_有限状态机_状态机

    有限状态机又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。它反映从系统开始到现在时刻的输入变化,转移指示状态变更,并且用必须满足来确使转移发生的条件来...

    AI-Implementation-using-FINITE-State-Machine-Model

    在AI领域,有限状态机(Finite State Machine, FSM)模型是一种广泛应用的理论工具,它能够有效地模拟和设计复杂的系统行为。这个压缩包“AI-Implementation-using-FINITE-State-Machine-Model”很可能包含了关于...

    FSM状态机生成工具

    标题中的“FSM状态机生成工具”是指一种用于创建有限状态机(Finite State Machine, FSM)的软件工具,它特别适用于编程领域。FSM是一种计算模型,由一系列状态、转移条件和动作组成,广泛应用于软件工程、计算机...

    一个有趣的有限状态机的JAVA实现

    在IT领域,有限状态机(Finite State Machine, FSM)是一种重要的设计模式,它在软件工程、计算机科学以及许多其他领域都有广泛的应用。本主题“一个有趣的有限状态机的JAVA实现”将带你探索如何利用Java语言构建一...

    Lua有限状态机

    在文件名"StateMachine"的上下文中,我们可以假设这是实现有限状态机的Lua脚本文件,可能包含了FSM类的定义和状态类的声明。 状态机的使用通常涉及到以下步骤: 1. 初始化:创建FSM实例,设置初始状态。 2. 更新:...

    JavascriptFiniteStateMachine有限状态机的独立库

    JavaScript Finite State Machine(JSFSM)是一个专门为JavaScript编程语言设计的独立库,它实现了有限状态机(Finite State Machine,FSM)的概念。有限状态机是一种数学模型,常用于描述和控制程序的不同行为阶段...

    Android-StateMachine-用于有限状态机的KotlinDSL

    在Android应用开发中,有限状态机(Finite State Machine, FSM)是一种常见的设计模式,它将一个系统的各种行为抽象为不同的状态,并定义了状态之间的转换规则。`Android-StateMachine`库提供了一个基于Kotlin的领域...

    事件驱动状态机state machine

    在软件开发中,事件驱动状态机可以使用Finite State Machine(FSM)来实现。FSM是一种数学模型,用于描述状态机的行为。FSM由三个组件组成: 1. 状态集(State Set):定义了状态机的所有可能状态。 2. 事件集...

    有限状态机代码FSM.zip

    有限状态机(Finite State Machine, FSM)是一种计算模型,它由一组状态、一个初始状态、一组转换规则以及一个输出函数组成。在C语言中实现有限状态机,通常涉及到以下几个核心概念: 1. **状态**: 状态是有限状态...

    FSM有限状态机demo

    有限状态机(Finite State Machine, FSM)是一种数学模型,用于描述和设计具有固定数量状态的系统,这些系统根据外部输入或内部条件在不同状态之间转换。在计算机科学中,FSM广泛应用于各种领域,如编译器设计、网络...

Global site tag (gtag.js) - Google Analytics