反応してもらえて嬉しいわ → 冷蔵庫にキリンを入れる方法
こんなもんを考えておったわけです。
入れ子になった状態遷移図は展開して:
こんなんなるっす。
ハナっからこう書けば入れ子にはならんのだけど、
御覧のとおり遷移図がちとややこしくなります。
ONとOFFが切り替わる程度の内部状態だからこの程度で済んでるけども、
ちょいとややこしくなると途端に見通しの悪い絵になるです。
状態遷移図としては入れ子にした方が綺麗だし設計者の意図が明らか。
なんだけど入れ子になった状態遷移を有限状態機械に変換するのは
結構ホネなんです。
状態には入場動作/退場動作(状態に飛び込む/抜け出すときに必ず行う動作)
があるんだけど、たとえば閉から空に遷移するとき、
閉の退場動作→開の入場動作→空の入場動作 を順にやらにゃ
なりません(退場時も同様ね)。
また、象を入れるとなると、開から抜けたときその内部状態:空/満の
どっちから抜けたかを覚えておいて次回飛び込むときそっちに
飛び込まにゃあきません。
場合によっちゃー一旦抜けたら初期状態に戻りたいことだってあるし。
...いい頭の体操になるわけですわ。プログラミングは最高の知的遊戯やと思ってます。
オヤヂを通り越してヂヂイになってもプログラミングを趣味にできたら幸せだろなー。