Final Trivia Game Code

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed wave_player

Fork of TriviaGame by Michael Balourdas

Revision:
3:9842b3f1d809
Parent:
1:1d5055ca2793
Child:
4:55bb76d28153
--- a/main.cpp	Fri Nov 04 15:44:32 2016 +0000
+++ b/main.cpp	Sun Dec 11 03:09:22 2016 +0000
@@ -4,6 +4,11 @@
 #include "wave_player.h"
 #include "mpr121.h"
 #include <vector>
+#include <string>
+#include "stdlib.h"
+#include "stdio.h"
+
+
 
 AnalogOut DACout(p18); // used to play sound on speaker
 //wave player plays a *.wav file to D/A and a PWM
@@ -11,6 +16,7 @@
 InterruptIn interrupt(p26);
 I2C i2c(p9, p10);
 Mpr121 mpr121(&i2c, Mpr121::ADD_VSS);
+Serial pc(USBTX, USBRX);
 
 uLCD_4DGL uLCD(p28,p27,p29); // serial tx, serial rx, reset pin;
 SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card setup
@@ -22,7 +28,33 @@
 bool check = 0;
 int value = 0;
 std::vector<int> v;
+Timer t;
+float tr = 0;
+int mode = 0;
+int counter = 0;
+int cScore = 0;
+int tScore = 0;
+int nScore = 0;
+int tHighScore = 0;
+int nHighScore = 0;
+int cHighScore = 0;
+string game;
+char nHigh[2];
+char tHigh[2];
+char cHigh[2];
 
+ void itoa(int n, char s[])
+ {
+     int i, sign;
+ 
+     if ((sign = n) < 0)  /* record sign */
+         n = -n;          /* make n positive */
+     i = 0;
+     do {       /* generate digits in reverse order */
+         s[i++] = n % 10 + '0';   /* get next digit */
+     } while ((n /= 10) > 0);     /* delete it */
+
+ }
 
 int main()
 {
@@ -34,27 +66,110 @@
         }
         check = 0;
         question = 0;
-        uLCD.baudrate(3000000);
+        uLCD.baudrate(30);
         uLCD.background_color(BLACK);
         uLCD.color(BLUE);
         uLCD.cls();
-        if (Score > HighScore){
-            HighScore = Score;
-            uLCD.printf("NEW HIGH SCORE!\n %d", HighScore);
+        if (mode == 1){
+            uLCD.cls();
+            uLCD.media_init();
+            uLCD.set_sector_address(0x0000, 0x001D);
+            uLCD.display_image(0,0);
+            wait(2);
+            uLCD.cls();
+            uLCD.printf("Final Score:%d\n", nScore);
+            if (nScore > nHighScore){
+            nHighScore = nScore;
+            uLCD.printf("NEW NORMAL\n HIGH SCORE!\n %d", nHighScore);
+            
+            wait(2);
+        }
+        itoa(nHighScore, nHigh);
+        pc.puts(nHigh);
+        uLCD.printf("\nClick New Game");
+        }
+        if (mode == 2){
+            uLCD.cls();
+            uLCD.media_init();
+            uLCD.set_sector_address(0x0000, 0x001D);
+            uLCD.display_image(0,0);
+            wait(2);
+            uLCD.cls();
+            uLCD.printf("Final Score:%d\n", tScore);
+            if (tScore > tHighScore){
+            tHighScore = tScore;
+            uLCD.printf("NEW TIMED\n HIGH SCORE!\n %d", tHighScore);
+            wait(2);
+        }
+        
+        itoa(tHighScore, tHigh);
+        pc.puts(tHigh);
+        uLCD.printf("\nClick New Game");
+            }
+        if (mode == 4){
+            uLCD.cls();
+            uLCD.media_init();
+            uLCD.set_sector_address(0x0000, 0x001D);
+            uLCD.display_image(0,0);
+            wait(2);
+            uLCD.cls();
+            uLCD.printf("Final Score: %d\n", cScore);
+            if (cScore > cHighScore){
+            cHighScore = cScore;
+            uLCD.printf("NEW CHALLENGE\n HIGH SCORE!\n %d", cHighScore);
             wait(2);
         }
-        Score = 0;
+        itoa(cHighScore, cHigh);
+        pc.puts(cHigh);
+        uLCD.printf("\nClick New Game");
+        }
+        wait(2);
+        uLCD.cls();
+        nScore = 0;
+        tScore=0;
+        cScore=0;
+        counter = 0;
+
         uLCD.cls();
-        uLCD.printf("\nTrivia Game \n Main Menu\n\n"); 
-        uLCD.printf("High Score: %d \n", HighScore);
-        uLCD.printf("\nFor New Game \n Press 0");
-        while (value != 1){
-            value=mpr121.read(0x00);
-            value +=mpr121.read(0x01)<<8;  
+        uLCD.printf("Choose a Game Mode"); 
+        //uLCD.printf("High Score: %d \n", HighScore);
+        //uLCD.printf("\n0) Normal Game\n High Score:%d\n1) Timed Game\n High Score:%d\n2)Challenge Game\n High Score:%d", nHighScore, tHighScore, cHighScore);
+        while (1){
+            game = pc.getc();
+            //mode=mpr121.read(0x00);
+//            mode +=mpr121.read(0x01)<<8; 
+            if (game == "1"){
+                mode = 1;
+                break;
+                }
+            if (game == "2"){
+                mode = 2;
+                break;
             }
+             if (game == "4"){
+                 mode = 4;
+                 break;
+                 }
+            }
+
         uLCD.cls();
+        t.reset();
+        t.stop();
+        t.start();
+        //end of main menu
         if (v.size() !=0){
         while (answer == 1){
+            if (mode == 2){
+                tr = t.read();
+                if (tr > 60){
+                    break;
+                    }
+                    }
+            if (mode == 4){
+                if (counter > 3){
+                    break;
+                    }
+                }
             if (v.size() == 0){
                 break;
                 }
@@ -63,6 +178,9 @@
             v.erase(v.begin()+index);
             check = 0;
             uLCD.cls();
+            if (mode == 1){
+                uLCD.printf("Score: %d", nScore);
+            }
             wait(1);
             if (question == 1){
                 value = 0;
@@ -79,7 +197,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -87,7 +205,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 4){
@@ -102,17 +224,27 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                        counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -120,7 +252,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -136,11 +271,11 @@
                 while (check == 0){
                     int value=mpr121.read(0x00);
                     value +=mpr121.read(0x01)<<8;
-                    if (value == 4){
+                    if (value == 2){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -148,10 +283,14 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
-                    if (value == 2){
+                    if (value == 4){
                         //play correct image
                         uLCD.cls();
                         uLCD.media_init();
@@ -163,17 +302,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score=Score+1;;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -181,12 +331,14 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
-        }
-    }
-            
-  }
+                    }
+                }
+            }
   if (question == 3){
                 value = 0;
                 uLCD.cls();
@@ -202,7 +354,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -210,7 +362,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 8){
@@ -225,17 +381,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 4){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -243,7 +410,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -263,7 +433,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -271,7 +441,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 4){
@@ -286,17 +460,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -304,7 +489,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -324,7 +512,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -332,7 +520,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 2){
@@ -347,17 +539,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -365,7 +568,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -381,11 +587,11 @@
                 while (check == 0){
                     int value=mpr121.read(0x00);
                     value +=mpr121.read(0x01)<<8;
-                    if (value == 4){
+                    if (value == 2){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -393,7 +599,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 8){
@@ -408,17 +618,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
-                    if (value == 2){
+                    if (value == 4){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -426,7 +647,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -442,11 +666,11 @@
                 while (check == 0){
                     int value=mpr121.read(0x00);
                     value +=mpr121.read(0x01)<<8;
-                    if (value == 4){
+                    if (value == 2){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -454,7 +678,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 8){
@@ -469,17 +697,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
-                    if (value == 2){
+                    if (value == 4){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -487,7 +726,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -507,7 +749,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -515,7 +757,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 4){
@@ -530,17 +776,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -548,7 +805,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -568,7 +828,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -576,7 +836,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 2){
@@ -591,17 +855,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -609,7 +884,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }
@@ -629,7 +907,7 @@
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -637,7 +915,11 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter +1;
+                        
                         check = 1;
                         }
                     if (value == 2){
@@ -652,17 +934,28 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
-                        Score = Score+1;
-                        uLCD.printf("Score: %d", Score);
+                        if (mode == 1){
+                        nScore = nScore+1;
+                        }
+                        if (mode == 2){
+                        tScore = tScore+1;
+                        }
+                        if (mode == 4){
+                        cScore = cScore+1;
+                        }
+                        //uLCD.printf("Score: %d", Score);
                         wait(1);
+                        if (mode == 1){
                         answer = 1;
+                        }
+                            counter=counter+1;
                         check = 1;
                         }
                     if (value == 8){
                         //play game over
                         uLCD.cls();
                         uLCD.media_init();
-                        uLCD.set_sector_address(0x0000, 0x009F);
+                        uLCD.set_sector_address(0x0000, 0x001D);
                         uLCD.display_image(0,0);
                         FILE *wave_file;   
                         wave_file=fopen("/sd/sounds/wrong_last.wav","r");
@@ -670,7 +963,10 @@
                         fclose(wave_file);
                         wait(1);
                         uLCD.cls();
+                        if (mode == 1){
                         answer = 0;
+                        }
+                        counter = counter+1;
                         check = 1;
                     }
                 }