Смоделируйте торговый автомат при помощи мучнистой семантики

В этом примере показано, как использовать Мучнистую семантику, чтобы смоделировать торговый автомат.

Логика мучнистого торгового автомата

В этом примере торговый автомат требует, чтобы 15 центов выпустили банку содовой. Покупатель может вставить никель или десять центов, по одному, чтобы купить содовую. График ведет себя как Мучнистая машина потому что ее выход soda зависит и от входной монеты и от текущего состояния:

Когда начальное состояние got_0 активно. Никакая монета не была получена, или никакие монеты не оставляют.

  • Если никель получен (coin == 1), выход soda остается 0, но got_nickel состояния становится активным.

  • Если десять центов получены (coin == 2), выход soda остается 0, но got_dime состояния становится активным.

  • Если введенная монета не является десятью центов или никелем, got_0 состояния остается активен и никакая содовая не выпущена (выход soda = 0).

В активном got_nickel состояния. Никель был получен.

  • Если другой никель получен (coin == 1), got_dime состояния становится активным, но никакая банка не выпущена (soda остается в 0).

  • Если десять центов получены (coin == 2), банка выпущена (soda = 1), монеты окружаются валом, и активное состояние становится got_0 потому что никакие монеты не оставляют.

  • Если введенная монета не является десятью центов или никелем, got_nickel состояния остается активен и никакая банка не выпущена (выход soda = 0).

В активном got_dime состояния. Десять центов были получены.

  • Если никель получен (coin == 1), банка выпущена (soda = 1), монеты окружаются валом, и активное состояние становится got_0 потому что никакие монеты не оставляют.

  • Если десять центов получены (coin == 2), банка выпущена (soda = 1), 15 центов окружаются валом, и активное состояние становится got_nickel потому что никель (изменение) оставляют.

  • Если введенная монета не является десятью центов или никелем, got_dime состояния остается активен и никакая банка не выпущена (выход soda = 0).

Правила проектирования в мучнистом торговом автомате

Этот пример Мучнистого торгового автомата иллюстрирует эти Мучнистые правила проектирования:

  • График вычисляет выходные параметры в действиях условия.

  • Нет никаких состояний активности или действий перехода.

  • График задает входные параметры графика (coin) и выходные параметры (soda).

  • Значение входа coin определяет выход: выпущена ли содовая.

Похожие темы