public:vj1231:fsm:start
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| public:vj1231:fsm:start [2026/10/06 12:09] – [🔵 NPC Guardia] mperez | public:vj1231:fsm:start [2026/10/13 16:42] (actual) – [Componentes de la FSM] mperez | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Máquinas de estado finitos | + | ====== Máquinas de Estados Finitos |
| Una Máquinas de estado finitos (FSM, por sus siglas en inglés) es un modelo matemático compuesto por: | Una Máquinas de estado finitos (FSM, por sus siglas en inglés) es un modelo matemático compuesto por: | ||
| Línea 24: | Línea 24: | ||
| Las ventajas de este modelo es que cada estado encapsula su lógica lo que lo hace fácil de extender ya que añadir un nuevo estado solo requiere una nueva clase y evita grandes bloques de if/else que hacen el código ilegible. | Las ventajas de este modelo es que cada estado encapsula su lógica lo que lo hace fácil de extender ya que añadir un nuevo estado solo requiere una nueva clase y evita grandes bloques de if/else que hacen el código ilegible. | ||
| - | ====== | + | ====== |
| ===== class State: ===== | ===== class State: ===== | ||
| Línea 60: | Línea 60: | ||
| ===== Transiciones entre estados ===== | ===== Transiciones entre estados ===== | ||
| - | Hay que definir para cada estado un diccionario denominado transitions con el evento que provoca una transición y a qué estado se mueve. | + | |
| + | Las transiciones de un estado a otros se pueden definir en el método '' | ||
| + | |||
| + | |||
| + | Otras implementaciones definen las transiciones entre estados como un diccionario de pares ''" | ||
| <code python> | <code python> | ||
| # Definir transiciones para NPCTimido | # Definir transiciones para NPCTimido | ||
| TimidoPatrolState.transitions = {" | TimidoPatrolState.transitions = {" | ||
| + | TimidoChaseState.transitions = {" | ||
| + | ... | ||
| </ | </ | ||
public/vj1231/fsm/start.1791288566.txt.gz · Última modificación: por mperez
