I think your first point is wrong though: you can have "non-linear" behavior, for example a "Person" turned into a "Zombie", could become stronger when they are "Poisoned" (instead of becoming weaker like a non-Zombie person).

You are right in the sense that it can be done. But my point is that you loose the advantages of considering the state as multidimensional.

For me, the real issue with complex state machines (mutidimensional or not) is not how to implement them but how to express them in a way that is easy to understand for humans. How to avoid ending with a big ball of code.


In reply to Re^7: a State machine with Roles - possible? (class or instance) by salva
in thread a State machine with Roles - possible? by mascip

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.