![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Simon: A Memory Game
Dependencies: 4DGL-uLCD-SE PinDetect mbed
Revision 2:c92f0e749b94, committed 2014-10-21
- Comitter:
- cmathis
- Date:
- Tue Oct 21 15:29:16 2014 +0000
- Parent:
- 1:cd222334a4fe
- Commit message:
- revision3
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r cd222334a4fe -r c92f0e749b94 main.cpp --- a/main.cpp Tue Oct 21 14:01:21 2014 +0000 +++ b/main.cpp Tue Oct 21 15:29:16 2014 +0000 @@ -28,6 +28,7 @@ // analog input for seeding rand() function AnalogIn adcReading(p18); +AnalogIn pot(p19); // variable declarations int levels[16]; @@ -38,6 +39,7 @@ int failed; int start = 1; int randomSeed; +float volume; // function prototypes void enableInterrupts(); @@ -62,6 +64,8 @@ while(1) { + volume = pot.read(); + // only initialize these variables at the start of each game if(start == 1){ failed = 0; @@ -83,7 +87,8 @@ // wait in this loop until the user pushes buttons the same number of times as the current level // or until the user has pushed an incorrect button while(buttonPushes != level && failed == 0){ - wait(0.5); + volume = pot.read(); + wait(0.1); } // if the user has failed, disable the pushbutton interrupts, notify the user that they failed, @@ -96,7 +101,7 @@ // if the user has completed all of the levels without failing, disable the pushbutton interrupts, // notify the user that they won, and set start=1 so that the game restarts from level 1 - if(level == 5 && failed == 0){ + if(level == 10 && failed == 0){ disableInterrupts(); endGame(); start = 1; @@ -215,25 +220,25 @@ switch(levels[i]){ case 1: led1 = 1; - mySpeaker.PlayNote(659.26, 0.50, 0.2); + mySpeaker.PlayNote(659.26, 0.50, volume); led1 = 0; wait(0.025); break; case 2: led2 = 1; - mySpeaker.PlayNote(554.00, 0.50, 0.2); + mySpeaker.PlayNote(554.00, 0.50, volume); led2 = 0; wait(0.025); break; case 3: led3 = 1; - mySpeaker.PlayNote(440.00, 0.50, 0.2); + mySpeaker.PlayNote(440.00, 0.50, volume); led3 = 0; wait(0.025); break; case 4: led4 = 1; - mySpeaker.PlayNote(329.63, 0.50, 0.2); + mySpeaker.PlayNote(329.63, 0.50, volume); led4 = 0; wait(0.025); break; @@ -253,7 +258,7 @@ buttonPushes++; led1 = 1; - mySpeaker.PlayNote(659.26, 0.25, 0.2); + mySpeaker.PlayNote(659.26, 0.25, volume); led1 = 0; if(levels[buttonPushes-1] != 1){ @@ -268,7 +273,7 @@ buttonPushes++; led2 = 1; - mySpeaker.PlayNote(554.00, 0.25, 0.2); + mySpeaker.PlayNote(554.00, 0.25, volume); led2 = 0; if(levels[buttonPushes-1] != 2){ @@ -283,7 +288,7 @@ buttonPushes++; led3 = 1; - mySpeaker.PlayNote(440.00, 0.25, 0.2); + mySpeaker.PlayNote(440.00, 0.25, volume); led3 = 0; if(levels[buttonPushes-1] != 3){ @@ -298,7 +303,7 @@ buttonPushes++; led4 = 1; - mySpeaker.PlayNote(329.63, 0.25, 0.2); + mySpeaker.PlayNote(329.63, 0.25, volume); led4 = 0; if(levels[buttonPushes-1] != 4){ @@ -320,10 +325,10 @@ uLCD.printf("Over"); - mySpeaker.PlayNote(147.00, 0.60, 1); - mySpeaker.PlayNote(139.00, 0.60, 1); - mySpeaker.PlayNote(131.00, 0.60, 1); - mySpeaker.PlayNote(123.00, 1.60, 1); + mySpeaker.PlayNote(147.00, 0.60, volume); + mySpeaker.PlayNote(139.00, 0.60, volume); + mySpeaker.PlayNote(131.00, 0.60, volume); + mySpeaker.PlayNote(123.00, 1.60, volume); } @@ -341,42 +346,42 @@ int time = 0.01; - mySpeaker.PlayNote(392.00, 0.33, 0.2); + mySpeaker.PlayNote(392.00, 0.33, volume); wait(time); - mySpeaker.PlayNote(349.23, 0.17, 0.2); + mySpeaker.PlayNote(349.23, 0.17, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.33, 0.2); + mySpeaker.PlayNote(311.13, 0.33, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.17, 0.2); + mySpeaker.PlayNote(311.13, 0.17, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.33, 0.2); + mySpeaker.PlayNote(311.13, 0.33, volume); wait(time); - mySpeaker.PlayNote(349.23, 0.17, 0.2); + mySpeaker.PlayNote(349.23, 0.17, volume); wait(time); - mySpeaker.PlayNote(392.00, 0.33, 0.2); + mySpeaker.PlayNote(392.00, 0.33, volume); wait(time); - mySpeaker.PlayNote(392.00, 0.17, 0.2); + mySpeaker.PlayNote(392.00, 0.17, volume); wait(time); - mySpeaker.PlayNote(392.00, 0.165, 0.2); + mySpeaker.PlayNote(392.00, 0.165, volume); wait(time); - mySpeaker.PlayNote(349.23, 0.165, 0.2); + mySpeaker.PlayNote(349.23, 0.165, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.17, 0.2); + mySpeaker.PlayNote(311.13, 0.17, volume); wait(time); - mySpeaker.PlayNote(349.23, 0.165, 0.2); + mySpeaker.PlayNote(349.23, 0.165, volume); wait(time); - mySpeaker.PlayNote(392.00, 0.165, 0.2); + mySpeaker.PlayNote(392.00, 0.165, volume); wait(time); - mySpeaker.PlayNote(349.23, 0.17, 0.2); + mySpeaker.PlayNote(349.23, 0.17, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.33, 0.2); + mySpeaker.PlayNote(311.13, 0.33, volume); wait(time); - mySpeaker.PlayNote(293.66, 0.17, 0.2); + mySpeaker.PlayNote(293.66, 0.17, volume); wait(time); - mySpeaker.PlayNote(311.13, 0.5, 0.2); + mySpeaker.PlayNote(311.13, 0.5, volume); } \ No newline at end of file