===== Tilstandmaskiner ===== Tilstandmaskinen, på engelsk en Finite State Machine (**FSM**), er en abstrakt måde at beskrive software på. En tilstandsmaskine består af: * En mængde **tilstande** (states) * En **start-tilstand**, dvs den tilstand FSM starter op i. (//initial state//) * initial-state indikeres med en indgående pil. * En mængde **transitioner** mellem tilstande. * En mængde hændelser (**events**) der leder til en transition. * f.eks. knap-tryk, timer-udløb, mouse-over, sensor-input etc. **Obs!: En tilstandsmaskine har altid kun 1 aktiv tilstand.** En meget simpel FSM af en lyskontakt: {{ prog::images:fsm_switch.png |}} Denne FSM's initial-state er OFF, ved tryk skifter den til tilstand 'ON'. Ved endnu et tryk, skifter den tilbage til OFF. (osv.) Nedenstående FSM er en model af en kaffe/the automat. {{ prog:images:fsm_vending_machine.png |}} ---- ==== Opgave ==== * Diskuter sammen med din side-mand/dame følgende: * Hvordan kan du i C# / Processing repræsentere en state? * (der er flere måder at gøre det på) * Hvordan holder man styr på hvilken state, som er den aktive state? * Hvordan kan man skifte fra en state til en anden? ---- * Sammen med din side-(buddy) skal du i nu forsøge at implementere en tilstandsmaskine, en the/kaffe automat. * Du kan med fordel gøre brug af funktioner ---- * Hvilke states er der? * Hvilke events er der? * Hvilke transitioner er mulige? * Hvilken state er initial-state?