Stap 6: Schrijven van de huidige Module
In een memory-spel, moet een patroon worden voorgelegd aan de gebruiker voor hen te herhalen. Dit is het doel van de huidige module. Telkens als die de huidige module wordt uitgevoerd, wordt het patroon van de LEDs van het laatste niveau weergegeven, plus één meer. Oog op de uitvoering van dit, we gebruikten een eindige toestandsmachine en een teller. De teller, genaamd "i", houdt spoor van het niveau. Dit prestatiemeteritem houdt spoor van hoeveel staten moeten worden uitgevoerd voordat het programma naar de tussenfase gaat, genaamd de IN_BETWEEN_STATE. In de tussenfase geen LEDs worden weergegeven en, zoals we later toelichten zal, loopt de vergelijk module.
De code voor de eindige toestandsmachine kan ziet er ingewikkeld op het eerste gezicht, maar logisch het is heel simpel. Elke staat heeft drie delen: output, "if", en "anders". De sectie uitvoer regelt de LEDs en het display van de HEX. Het stelt de individuele LEDs in- of uitschakelen, waaruit de gebruiker welke volgorde voor het uitvoeren van de acties, evenals het niveau weergegeven op het display van de HEX. De "if"-instructie controleert als "ik", het niveau, overeenkomt met de staat dat wij in. Als de "als" verklaring waar is, wordt de eindige toestandsmachine verspringt direct naar de tussenfase te wachten op vergelijken om uit te voeren. "ik" is ook verhoogd zodat wanneer de huidige module wordt opnieuw uitgevoerd, de gebruiker op het volgende niveau. Ten slotte, de instructie "else" zorgt ervoor dat de machine staat naar het volgende frame in de reeks, een andere LED aan de presentatie toevoegt.
Naast de LED's is er ook goed. Elke LED heeft een andere toonhoogte die is gekoppeld aan het. Wanneer een LED is ingeschakeld, wordt de toonhoogte die is gekoppeld aan het speelt. We de juiste frequenties voor de toonhoogte aan het spel van Simon door het mathematisch manipuleren van de klokfrequentie gemaakt. Dit wordt onderzocht in de diepte in de allTones module.
Houd er rekening mee dat onze code is gekoppeld in stap 10.