正在从其他示例中看到,我正在研究自动售货机项目并尝试构建状态机。我正在尝试建造的机器可以支付高达100美元的费用。它需要镍,硬币和四分之一。所以,我应该逐个定义大约2000个州。如何以更简单的方式构建FSM?我只想要一个建议继续。
谢谢:)
答案 0 :(得分:5)
为什么您认为机器的现金余额的每个可能值都需要一个单独的状态?这听起来像是对FSM的不良使用。
只需使用一个整数寄存器来保存机器的总余额,或者使用单独的寄存器来保存各种硬币和账单的数量,并计算总数。
状态可能是process payment
,dispense item
或refund change
。不是机器的平衡。
答案 1 :(得分:0)
仅仅因为你有2000个“状态”并不意味着你必须在案例陈述中枚举它们中的每一个。
正如其他人所提到的,你需要将你的一些州存放在柜台中。