他の例で見たように、私は自動販売機プロジェクトに取り組んでおり、ステート マシンを構築しようとしています。私が作ろうとしている機械は 100 ドルまでです。そして、ニッケル、ダイム、クォーターが必要です。したがって、約 2000 の状態を 1 つずつ定義する必要があります。FSM をより簡単な方法で構築するにはどうすればよいですか? 提案を進めたいだけです。
ありがとう :)
マシンの現金残高のすべての可能な値に個別の状態が必要だと思うのはなぜですか? それはFSMの使い方が悪いように思えます。
マシンの合計残高を保持する整数レジスターを使用するか、さまざまなコインと紙幣の数を保持し、そこから合計を計算する個別のレジスターを使用するだけです。
process payment
状態は、 、dispense item
、またはのようなものである可能性がありますrefund change
。機械のバランスではありません。
2000 の「状態」があるからといって、case ステートメントでそれらすべてを列挙する必要があるわけではありません。
他の人が述べたように、状態の一部をカウンターに保存する必要があります。