DIY Tilt Sensor minne spelet (6 / 12 steg)
Steg 6: Skriva den nuvarande modulen
I ett minnesspel uppvisas ett mönster till användaren för dem att upprepa. Detta är syftet med den aktuella modulen. Varje gång den nuvarande modulen körs, visas mönstret av lysdioder från den sista nivån, plus en till. För att genomföra detta, använde vi en ändlig tillståndsmaskin och en räknare. De strider, som kallas "i", håller reda på nivån. Den här räknaren håller reda på hur många stater bör köras innan programmet går till mellantillstånd, heter IN_BETWEEN_STATE. Mellantillstånd visas inga lysdioder och, som vi kommer att förklara senare, jämför modulen körs.
Koden för ändliga Tillståndsmaskinen kan vid första anblicken ser komplicerat, men logiskt sett är det ganska enkelt. Varje stat har tre delar: utdata, "om", och "annat". Avsnittet utdata styr lysdioderna och i HEX-rutan. Det anger de enskilda lysdioderna på eller av, visar användaren som för att utföra åtgärderna, som visar nivån på en HEX display. Uttrycket "om" kontrollerar om "i", nivån, matchar den stat som vi befinner oss i. Om uttrycket "om" är sant, hoppar ändliga tillståndsdatorn direkt till mellanstadium vänta jämför att köra. "i" ökas också så att när den nuvarande modulen körs igen användaren är på nästa nivå. Slutligen, uttrycket "annat" orsakar tillståndsdatorn att gå till nästa steg i sekvens, att lägga till en annan LED i presentationen.
Förutom lysdioderna finns det också ljud. Varje LED har en olika tonhöjd associeras till den. När en LED är påslagen, spelar planen länkade till den. Vi skapade rätt frekvenser för planen att matcha Simon spelet genom att matematiskt manipulera processorns klockfrekvens. Detta utforskas grundligt i modulen allTones.
Observera att vår kod är fäst i steg 10.