Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
正如我从其他示例中看到的那样,我正在开发一个自动售货机项目并尝试构建一个状态机。我正在尝试制造的机器最多可容纳 100 美元。它需要五分钱、一角钱和四分之一。所以,我应该一一定义大约 2000 个状态。如何以更简单的方式构建 FSM?我只是想提出一个建议。
谢谢 :)
为什么你觉得机器现金余额的每一个可能值都需要一个单独的状态?这听起来像是对 FSM 的不当使用。
只需使用一个整数寄存器来保存机器的总余额,或者使用单独的寄存器来保存各种硬币和纸币的数量并从中计算总数。
状态可能是process payment,dispense item或refund change. 不是机器的平衡。
process payment
dispense item
refund change
仅仅因为您有 2000 个“状态”并不意味着您必须在案例语句中枚举它们中的每一个。
正如其他人所提到的,您需要将一些状态存储在计数器中。