【问题标题】:FSM - conditional transitionFSM - 条件转换
【发布时间】:2018-09-15 18:13:28
【问题描述】:

许多 FSM 框架允许创建一个 FSM 定义转换矩阵,包括:

  1. 状态
  2. 事件
  3. 新状态
  4. 动作

我想处理这样的场景: 我有一个游戏。少数玩家(未知号码)可以加入游戏。玩家可以通过按下开始按钮来展示他准备比赛的状态。所有其他玩家都会收到有关按下开始按钮的通知。当最后一名玩家按下按钮时,游戏开始。

所以我不知道如何使用转换矩阵来定义我的游戏状态机。看起来有时开始事件会导致转换到相同的状态,而最终会转换到新状态。也许问题出在糟糕的状态/事件设计上?

【问题讨论】:

    标签: state-machine


    【解决方案1】:

    如果它仍然相关,您可以在此处使用 2 种状态为您的空间建模:

    • 未就绪状态
    • 就绪状态

    然后使用计数器监视事件。让我们说N是玩家的数量,每次玩家点击准备好你设置counter = counter + 1。您的活动在开头称为PlayersReady = false。在每个周期PlayersReady = counter >= N,因此您可以监控每个人是否准备好。 PlayersReady 成为你的过渡逻辑:

    Initial state = NotReadyState if (NOT PlayersReady) newState = NotReadyState else newState = ReadyState

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 2020-10-25
      • 2018-07-03
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多