My ELEC2645 project. Nikollao Sulollari. 200804685

Dependencies:   N5110 SoftPWM mbed

Fork of Treasure_Hunt by ELEC2645 (2015/16)

Files at this revision

API Documentation at this revision

Comitter:
Nikollao
Date:
Wed May 04 09:19:50 2016 +0000
Parent:
20:59aa6189a47d
Commit message:
Final Version for Submission! Well done!

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon May 02 17:57:27 2016 +0000
+++ b/main.cpp	Wed May 04 09:19:50 2016 +0000
@@ -9,13 +9,11 @@
 int main(void)
 {
     lcd.init(); ///initialise LED
-    init_K64F();
-    init_serial();
+    init_K64F(); ///init K64F 
+    init_serial(); ///initiate connection with PC port
     init_game(); ///initialize game
-    led_output = fsm[fsm_state];
+    led_output = fsm[fsm_state]; ///set FSM to turn on LEDs
     calibrateJoystick(); ///calibrate joystick
-    button.rise(&button_isr); ///assign rise with ISR
-    button1.rise(&button1_isr);
 
     game_ticker.attach(&game_timer_isr,0.2); ///attach ticker for the menu different from the main ticker
     menu();
@@ -24,46 +22,34 @@
 
     ticker.attach(&timer_isr,game_speed); ///attach ticker with ISR. Speed is selected by the user
     reset = level; ///set reset = level to check later if level has increased
-
+    g_button1_flag = 0;
+    timer.start();
     while (1) {
-
+        
         if (g_timer_flag) {///if timer flag is UP
 
             g_timer_flag = 0; ///reset flag
-            //g_button_flag = 0;
             lcd.clear();
+            if (reset < level) { ///if level has increased
+                g_button1_flag = 0; ///reset weapon button
+                reset = level; ///update reset
+                rectY = 0; ///set enemies to default position
+                circleX = 0;
+            }
             guidance(); ///get guidance
             hero(); ///call hero
             enemies(); ///generate enemies 
             obstacles(); ///generate obstacles
-            if (g_button1_flag) { ///if heavy weapon button is pressed
-                
-                g_button1_flag = 0;
-                rectY = 60; ///remove enemies from field
-                rectX = -10;
-                circleX = -10;
-                circleY = 100;
-                //timer.reset();
-                //timer.start();
+            //float count_time = timer.read();
+            
+            if (g_button1_flag) { ///the blue LED indicates if the weapon is ready to use or not
+                blue_led = 0;    
+            } else {
+                blue_led = 1;
             }
-            //float count_time = timer.read();
-            if (reset < level) { ///if level has increased
-                reset = level; ///update reset
-                rectY = 0; ///remove enemies from field
-                circleX = 0;
-            }
-            if (g_button1_flag) { ///if heavy weapon button is pressed
-               
-                g_button1_flag = 0;
-                rectY = 60; ///remove enemies from field
-                rectX = -10;
-                circleX = -10;
-                circleY = 100;
-                //timer.reset();
-                //timer.start();
-            }
+                
             checkOverlap(); ///check is hero has overlapped with enemies or obstacles 
-            updateJoystick();
+            updateJoystick(); ///update joystick
             lcd.refresh();
         }
         sleep();///use sleep and timer triggered interrupt to save power 
@@ -71,9 +57,7 @@
 }
 
 
-
-
-
+//mbed functions
 
 
 void init_serial()
@@ -95,7 +79,10 @@
     // resistors that are enabled by default using InterruptIn
     sw2.mode(PullNone);
     sw3.mode(PullNone);
-    button.mode(PullDown);
+    
+    button.rise(&button_isr); ///assign rise with ISR
+    button1.rise(&button1_isr);
+    button.mode(PullDown); ///use PullDown mode
     button1.mode(PullDown);
 }
 
@@ -144,102 +131,141 @@
 void enemies()
 {
     /// generate enemies in the screen depending on the level of difficulty
-    if (level == 0) {
+    if (level == 0) { ///generate enemies at level 0
+
+        enemyRect();
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 1) {///generate enemies at level 1
 
         enemyRect();
-        enemyCircle();
-    } else if (level == 1) {
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 2) {///generate enemies at level 2
+
+        enemyRocket();
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 3) {///generate enemies at level 3
+
+        enemyRect();
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 4) {///generate enemies at level 4
 
         enemyRect();
-        enemyCircle();
-    } else if (level == 2) {
-        
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 5) {///generate enemies at level 5
         enemyRocket();
-    } else if (level == 3) {
-        
-        enemyRect();
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 6) {///generate enemies at level 6
+        enemyRocket();
+        if (g_button1_flag == 0) {
+            enemyCircle();
+        }
+    } else if (level == 7) {///generate enemies at level 7
+        enemyRocket();
         enemyCircle();
-    } else if (level == 4) {
-        
-         enemyRect();
-        enemyCircle();  
-    } else if (level == 5) {
-        enemyRocket();
-    } else if (level == 6) {
-        enemyRocket();
-        enemyCircle();   
+        if (g_button1_flag == 1) {///if button1 is pressed don't allow to use at level 7
+            g_button1_flag = 0;
+             lcd.clear();
+            lcd.printString("Can't use now!",0,0);
+            lcd.refresh();
+            wait(1);
+            lcd.clear();
+        }
     }
-    else if (level == 7) {
-           enemyRocket();
-           enemyCircle();
-    }
+
 }
 
 void enemyRect()
 {
-    ///generate rect shape enemy
+    ///generate rectangular shape enemy
     lcd.drawRect(rectX,rectY,5,4,1);
-    if (g_button1_flag == 0) {
-        rectX = rectX + rand()%4 - 2;
-        rectY++; ///enemy moving towards hero
+
+    rectX = rectX + rand()%4 - 2;
+    rectY++; ///enemy moving towards hero
 
-        if (rectY > 50) {
-            rectY = 0;
-        }
-        if (rectX > 75 || rectX < 25) {
-            rectX = 40+rand()%6 - 3;
-        }
+    if (rectY > 50) {///set boundaries for enemy position
+        rectY = 0;
+    }
+    if (rectX > 75 || rectX < 25) {
+        rectX = 40+rand()%6 - 3;
     }
 }
 
-void enemyRocket() {
+void enemyRocket() { ///generate a "rocket-like" enemy
     
     lcd.drawRect(rectX,rectY,2,7,1);
     lcd.drawCircle(rectX+1,rectY+1,2,1);
     lcd.drawLine(rectX-2,rectY+2,rectX,rectY-1,1);
     lcd.drawLine(rectX+2,rectY+2,rectX,rectY-1,1);
-    
-    if (g_button1_flag == 0) {
-        rectX = rectX + rand()%4 - 2;
-        rectY++; ///enemy moving towards hero
+
+    rectX = rectX + rand()%4 - 2;
+    rectY++; ///enemy moving towards hero
+
+    if (rectY > 50) {///set boundaries for position of enemy
+        rectY = 0;
+    }
+    if (rectX > 75 || rectX < 10) {
+        rectX = 40+rand()%6 - 3;
+    }
+}
 
-        if (rectY > 50) {
-            rectY = 0;
-        }
-        if (rectX > 75 || rectX < 10) {
-            rectX = 40+rand()%6 - 3;
-        }
+void enemyCircle()
+{
+    ///generate circle shape enemy
+    lcd.drawCircle(circleX,circleY,4,1);
+    circleY = circleY + rand() %4 - 2;
+
+    if (circleY <= 10) { ///set the boundaries of the enemy
+        circleY = 20;
     }
+    if (circleY >= 35) {
+        circleY = 35;
+    }
+    if (circleX > 84) {
+        circleX = 0;
+    }
+    circleX++; ///enemy moving towards hero
 }
 void hero()
 {
     ///cotrol hero
-    if (joystick.direction == RIGHT) {
+    if (joystick.direction == RIGHT) { ///joystick direction points to the right
         heroX--;
-    } else if (joystick.direction == LEFT) {
+    } else if (joystick.direction == LEFT) {///joystick direction points to the left
         heroX++;
     } else {
         heroX = heroX;
     }
 
-    if (joystick.direction == UP) {
+    if (joystick.direction == UP) {///joystick direction points to the top
         heroY--;
-    } else if (joystick.direction == DOWN) {
+    } else if (joystick.direction == DOWN) {///joystick direction points down
         heroY++;
     } else {
-        heroY = heroY;
+        heroY = heroY; ///joystick is centred
     }
 
-    if (joystick.direction == UP_LEFT) {
+    if (joystick.direction == UP_LEFT) { ///joystick direction points up and left
         heroY--;
         heroX++;
-    } else if (joystick.direction == UP_RIGHT) {
+    } else if (joystick.direction == UP_RIGHT) { ///joystick direction points up and right
         heroY--;
         heroX--;
-    } else if (joystick.direction == DOWN_RIGHT) {
+    } else if (joystick.direction == DOWN_RIGHT) {///joystick direction points down and right
         heroY++;
         heroX--;
-    } else if (joystick.direction == DOWN_LEFT) {
+    } else if (joystick.direction == DOWN_LEFT) {///joystick direction points down and left
         heroY++;
         heroX++;
     }
@@ -253,39 +279,20 @@
     }
     if (heroY < -45) { ///if hero has reached the top of the screen
         heroY = 0; ///hero goes back to the bottom of the screen
-        level++; ///level increases by 1
+        g_button1_flag = 0;
+        level++; ///increase level of the game
     }
 
     if (heroY >= 0) {/// hero cannot go to previous level
         heroY = 0;
     }
     ///draw hero
-    lcd.drawLine(40+heroX, 47+heroY, 48+heroX, 43+heroY,1);
+    lcd.drawLine(40+heroX, 47+heroY, 48+heroX, 43+heroY,1); ///variables heroX and heroY are used to control the direction of the hero
     lcd.drawLine(40+heroX, 43+heroY,48+heroX, 47+heroY,1);
     lcd.drawLine(44+heroX, 45+heroY,44+heroX, 41+heroY,1);
     lcd.drawCircle(44+heroX, 39+heroY,2,0);
 }
 
-void enemyCircle()
-{
-    ///generate circle shape enemy
-    lcd.drawCircle(circleX,circleY,4,1);
-    circleY = circleY + rand() %4 - 2;
-
-    if (g_button1_flag == 0) {
-        if (circleY <= 10) {
-            circleY = 20;
-        }
-        if (circleY >= 35) {
-            circleY = 35;
-        }
-        if (circleX > 84) {
-            circleX = 0;
-        }
-        circleX++; ///enemy moving towards hero
-    }
-}
-
 void init_game()
 {
     ///initialise game
@@ -300,42 +307,47 @@
     lcd.printString("Treasure Hunt!",1,3);
     lcd.refresh();
     //timeout.attach(&timeout_isr,3);
-    //sleep();
-    wait(3);
+   // sleep();
+    wait(3); ///small delay prints welcome message
     lcd.clear();
 
 }
 void guidance()
 {
-    /// show arrow to act as guidance towards the treasure
-    if (level < 7) { ///check level of difficulty
-
-        lcd.drawLine(42,0,42,4,1);
+    if (level < 7) {
         lcd.drawLine(42,0,40,2,1);
         lcd.drawLine(42,0,44,2,1);
-    } else if (level == 7) {
+        lcd.drawLine(42,0,42,3,1);   
+    }
+    /// function acts as guidance towards the treasure
+     else if (level == 7) {
 
         lcd.printString("F",42,0); /// print the treasure icon
     } else if (level == 8) {
-
+        
+        timer.stop(); ///stop timer
+        timer.reset();
+        float win_time = timer.read();///value reads the time taken to win the game
+        char win[80]; ///create an array of chars
+        sprintf(win,"Time:%.2f sec",win_time); ///create string
         ticker.detach();
-        game_ticker.attach(&game_timer_isr,0.2);
+        game_ticker.attach(&game_timer_isr,0.2); 
         lcd.clear();
         lcd.printString("Well done!",0,0);
         lcd.refresh();
         wait(2);
         lcd.clear();
-        lcd.printString("You 're a WINNER!",0,0);
-        wait(2);
+        lcd.printString(win,0,0); ///print the time taken to win the game on screen
+        wait(3);
         lcd.clear();
-        lcd.printString("Play again!",0,0);
+        lcd.printString("Play again!",0,0); ///provide play again option
         lcd.drawCircle(70,4,2,1);
         lcd.refresh();
         g_button_flag = 0;
 
         while(1) {
-            if  (g_button1_flag) {
-
+            if  (g_button1_flag) { ///if button1 is pressed
+                ///reset
                 g_button1_flag = 0;
                 level = 0;
                 lcd.clear();
@@ -352,7 +364,8 @@
 {
     /// place obstacles in the screen
     /// as level difficulty increases, more obstacles are added
-    if (level == 0) {
+    
+    if (level == 0) { ///obstacles are located in the ground and they change from one level to another
 
         lcd.drawRect(10,15,2,2,1);
         lcd.drawRect(74,15,2,2,1);
@@ -364,11 +377,11 @@
         lcd.drawRect(74,28,2,2,1);
     } else if (level == 2) {
 
-        lcd.drawCircle(37,25,5,0);
-        lcd.drawCircle(47,25,5,0);
-        lcd.drawCircle(42,11,3,1);
-        lcd.drawCircle(37,25,3,1);
-        lcd.drawCircle(47,25,3,1);
+        lcd.drawCircle(25,25,5,0);
+        lcd.drawCircle(65,25,5,0);
+        lcd.drawCircle(45,11,3,1);
+        lcd.drawCircle(25,25,3,1);
+        lcd.drawCircle(65,25,3,1);
         lcd.drawRect(80,2,2,42,1);
         lcd.drawRect(2,2,2,42,1);
 
@@ -384,7 +397,7 @@
         lcd.drawRect(52,30,2,2,1);
     } else if (level == 4) {
 
-        lcd.drawRect(5+rand() %4 - 2 ,12+rand() %4 - 2,2,2,1);
+        lcd.drawRect(5+rand() %4 - 2 ,12+rand() %4 - 2,2,2,1); ///make obstacles moveable by adding a small random variance in position
         lcd.drawRect(79 + rand() %4 - 2,12 + rand() %4 - 2,2,2,1);
         lcd.drawRect(5+ rand() %4 - 2,30+rand() %4 - 2 ,2,2,1);
         lcd.drawRect(79 + rand() %4 - 2,30+rand() %4 - 2,2,2,1);
@@ -526,10 +539,10 @@
                     option++;
                     break;
             }
-            if (option < 0) {
+            if (option < 0) { /// if the last (down) option is set for selection and user presses joystick down, selector moves at the top
                 option = 2;
             }
-            if (option > 2) {
+            if (option > 2) { /// if the first (up) option is set for selection and user presses joystick up, selector moves at the bottom
                 option = 0;
             }
 
@@ -564,24 +577,24 @@
                                     lcd.printString("Game speed",0,0);  ///print settings menu
                                     lcd.printString("Lcd:Inverse",0,1);
                                     lcd.printString("Sound:ON",0,2);
-                                    lcd.printString("Back",0,3);
+                                    lcd.printString("Back",0,4);
                                 } else {
                                     lcd.printString("Game speed",0,0);  ///print settings menu
                                     lcd.printString("Lcd:Inverse",0,1);
                                     lcd.printString("Sound:OFF",0,2);
-                                    lcd.printString("Back",0,3);
+                                    lcd.printString("Back",0,4);
                                 }
                             } else {
                                 if (sound) {
                                     lcd.printString("Game speed",0,0);  ///print settings menu
                                     lcd.printString("Lcd:Normal",0,1);
                                     lcd.printString("Sound:ON",0,2);
-                                    lcd.printString("Back",0,3);
+                                    lcd.printString("Back",0,4);
                                 } else {
                                     lcd.printString("Game speed",0,0);  ///print settings menu
                                     lcd.printString("Lcd:Normal",0,1);
                                     lcd.printString("Sound:OFF",0,2);
-                                    lcd.printString("Back",0,3);
+                                    lcd.printString("Back",0,4);
                                 }
                             }
                             switch (joystick.direction) {
@@ -610,7 +623,7 @@
                             } else if (option == 2) {
                                 lcd.drawCircle(70,20,2,1);
                             } else {
-                                lcd.drawCircle(35,27,2,1);
+                                lcd.drawCircle(35,36,2,1);
                             }
                             if (g_button_flag) { ///if button is pressed
                                 g_button_flag = 0; ///reset button
@@ -624,20 +637,20 @@
                                             updateJoystick();
                                             lcd.clear();
                                             if (speed == 0) {
-                                                lcd.printString("Slow!",0,0); ///print game speed menu
+                                                lcd.printString("Slow<",0,0); ///print game speed menu
                                                 lcd.printString("Normal",0,1);
                                                 lcd.printString("Fast",0,2);
-                                                lcd.printString("Back",0,3);
+                                                lcd.printString("Back",0,4);
                                             } else if (speed == 1) {
-                                                lcd.printString("Slow",0,0); ///print game speed menu
-                                                lcd.printString("Normal!",0,1);
+                                                lcd.printString("Slow",0,0); //print game speed menu
+                                                lcd.printString("Normal<",0,1);
                                                 lcd.printString("Fast",0,2);
-                                                lcd.printString("Back",0,3);
+                                                lcd.printString("Back",0,4);
                                             } else if (speed == 2) {
-                                                lcd.printString("Slow",0,0); ///print game speed menu
+                                                lcd.printString("Slow",0,0); //print game speed menu
                                                 lcd.printString("Normal",0,1);
-                                                lcd.printString("Fast!",0,2);
-                                                lcd.printString("Back",0,3);
+                                                lcd.printString("Fast<",0,2);
+                                                lcd.printString("Back",0,4);
                                             }
 
                                             switch (joystick.direction) {
@@ -665,20 +678,20 @@
                                             } else if (option == 2) {
                                                 lcd.drawCircle(35,20,2,1);
                                             } else {
-                                                lcd.drawCircle(35,27,2,1);
+                                                lcd.drawCircle(35,36,2,1);
                                             }
 
                                             if (g_button_flag) {
                                                 g_button_flag = 0;
 
                                                 if (option == 0) {
-                                                    game_speed = 0.1;
+                                                    game_speed = 0.1; ///slow
                                                     speed = 0;
                                                 } else if (option == 1) {
-                                                    game_speed = 0.05;
+                                                    game_speed = 0.05; ///normal
                                                     speed = 1;
                                                 } else if (option == 2) {
-                                                    game_speed = 0.04;
+                                                    game_speed = 0.04; ///fast
                                                     speed = 2;
                                                 } else if (option == 3) {
                                                     break;
@@ -699,10 +712,13 @@
 
                                     sound =! sound;
 
-                                    if (sound)
-                                        buzzer.write(0.5);
-                                    else
+                                    if (sound) {
+                                        //buzzer.write(0.5);
+                                       // buzzer.period(1/4000);
+                                    }
+                                    else {
                                         buzzer.write(0.0);
+                                    }
                                     // buzzer.period(1/400);
                                 } else if(option == 3) { ///go back to main menu
                                     break;
@@ -753,19 +769,19 @@
 void checkOverlap()
 {
 
-    for (int i=40+heroX; i<50+heroX; i++) {
+    for (int i=40+heroX; i<50+heroX; i++) { ///loop follows the hero and checks for overlap around him
         for (int j=35+heroY; j<48+heroY; j++) {
 
-            int check = intersection(i,j);
+            int check = intersection(i,j); ///int gets number of pixels around the hero
             //lcd.setPixel(i,j);
             char bit[50];
             sprintf(bit,"Pixels: %d",check);
 
 
-            for(int i = 40; i < 50; i++) {
+            for(int i = 40; i < 50; i++) { ///provides safety if hero is in default position he doesn't get killed by enemies
                 for (int j = 35; j < 47; j++) {
 
-                    if (lcd.getPixel(i,j) && check > 6) {
+                    if (lcd.getPixel(i,j) && check > 6) { ///6 is the offset of the neigbours, as hero has his own neighbours pixels 
                         check = 6;
                     }
                 }
@@ -773,14 +789,20 @@
             if (check > 7) {
                 tries--;
                 //if tries
-
-                lcd.printString("BANG!",0,0);
+                lcd.printString("BANG!",0,0); ///Bang message is displayed when overlap has occured
+                if (sound) {
+                    buzzer.write(0.5);
+                    //buzzer.pulsewidth(0.9);
+                } else {
+                    buzzer.write(0.0);
+                }
                 lcd.refresh();
                 wait(2);
                 lcd.clear();
 
                 if (tries == 2) {
-
+                    
+                    g_button1_flag = 0;
                     lcd.printString("Ready.",20,1);
                     lcd.refresh();
                     wait(0.5);
@@ -790,29 +812,33 @@
                     lcd.printString("Ready...",20,1);
                     lcd.refresh();
                     wait(1);
-                    lcd.printString("GO!",31,2);
+                    lcd.printString("GO!",31,3);
                     lcd.refresh();
                     wait(1);
                     lcd.clear();
                     fsm_state = 1; ///2 lives left
                 } else if (tries == 1) {
-
+                    
+                    g_button1_flag = 0;
                     lcd.clear();
                     lcd.printString("Last Chance!",10,2);
                     lcd.refresh();
                     wait(1);
                     fsm_state = 2; //1 life left
                 } else if (tries == 0) {
-
+                    
+                    g_button1_flag = 0;
                     fsm_state = 3;
                     led_output=fsm[fsm_state];
                     lcd.clear();
                     lcd.printString("Game Over!",10,2);
+                    timer.stop();
+                    timer.reset();
                     lcd.refresh();
                     wait(2);
 
                     ticker.detach();
-                    game_ticker.attach(&game_timer_isr,0.2);
+                    game_ticker.attach(&game_timer_isr,0.2); ///attach a slower ticker to save power while not playing
                     lcd.clear();
                     lcd.printString("Play again!",0,0);
                     lcd.drawCircle(70,4,2,1);
@@ -820,19 +846,21 @@
                     g_button_flag = 0;
 
                     while(1) {
-                        if  (g_button1_flag) {
+                        if  (g_button1_flag) { ///if button1 is pressed
 
-                            g_button1_flag = 0;
-                            level = 0;
+                            g_button1_flag = 0; ///reset button1 flag
+                            level = 0; ///reset parameters
                             tries = 3;
                             fsm_state = 0;
                             led_output=fsm[fsm_state];
+                            buzzer.write(0.0);
                             lcd.clear();
+                            ///reset values
                             heroX = 0;
                             heroY = 0;
                             rectY = 0;
                             circleX = 0;
-                            main();
+                            main(); ///call main
                         }
                         sleep();
                     }
@@ -843,25 +871,15 @@
                 rectY = 0;
                 circleX = 0;
                 led_output=fsm[fsm_state];
+                buzzer.write(0.0);
             }
 
         }
     }
 }
 
-void error()
-{
-    /// display error message
-    while (1) {
-
-        lcd.printString("Error!",0,0);
-        r_led = 0;
-        wait(0.2);
-        r_led = 1;
-        wait(0.2);
-    }
-}
 
 
 
 
+
--- a/main.h	Mon May 02 17:57:27 2016 +0000
+++ b/main.h	Wed May 04 09:19:50 2016 +0000
@@ -21,37 +21,37 @@
 DigitalOut r_led(LED_RED);
 
 /**
-@nameSpace g_led
+@namespace g_led
 @brief output for status of green LED
 */
 DigitalOut g_led(LED_GREEN);
 
 /**
-@nameSpace b_led
+@namespace b_led
 @brief output for status of blue LED
 */
 DigitalOut b_led(LED_BLUE);
 
 /**
-@nameSpace blue_led
+@namespace blue_led
 @brief output for status of blue LED, lights when game tool is loaded
 */
 DigitalOut blue_led(PTA1);
 
 /**
-@nameSpace led_output
+@namespace led_output
 @brief output for status of left tries for the user to win the game
 */
 BusOut led_output(PTC2,PTA2,PTB23);
 
 /**
-@nameSpace lcd
+@namespace lcd
 @brief object of the N5110 class
 */
 N5110 lcd(PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);
 
 /**
-@nameSpace pc
+@namespace pc
 @brief serial connection between mbed and pc
 */
 Serial pc(USBTX,USBRX);
@@ -62,62 +62,62 @@
 
 
 /**
-@nameSpace xPot
+@namespace xPot
 @brief read x-axis position from the value of the joystick
 */
 AnalogIn xPot(PTB2);
 
 /**
-@nameSpace yPot
+@namespace yPot
 @brief read y-axis position from the value of the joystick
 */
 AnalogIn yPot(PTB3);
 
 /**
-@nameSpace button
+@namespace button
 @brief interrupt executes an event triggered task
 */
 InterruptIn button(PTB10);
 
 /**
-@nameSpace button
+@namespace button
 @brief interrupt executes an event triggered task
 */
 InterruptIn button1(PTB18);
 
 /**
-@nameSpace buzzer
-@brief create PWM signal to set buzzer duty cycle and period
+@namespace buzzer
+@brief create PWM signal using the SoftPWM library to set buzzer duty cycle and period
 */
 SoftPWM buzzer(PTB9);
 
 /**
-@nameSpace ticker
+@namespace ticker
 @brief interrupt executes a time-triggered task
 */
 Ticker ticker;
 
 /**
-@nameSpace timer
+@namespace timer
 @brief  interface is used to measure the time between start and stop
 */
 Timer timer;
 
 /**
-@nameSpace game_ticker
+@namespace game_ticker
 @brief interrupt executes a time-triggered task
 */
 Ticker game_ticker;
 
 /**
-@nameSpace timeout
+@namespace timeout
 @brief interrupt calls a function after a specified amount of time
 */
 Timeout timeout;
 
 
 /**
-@nameSpace DirectionName
+@namespace DirectionName
 @brief define joystick's direction based on its x,y values
 */
 enum DirectionName {
@@ -133,7 +133,7 @@
 };
 
 /**
-@nameSpace Joystick
+@namespace Joystick
 @brief create strcut Joystick
 */
 typedef struct JoyStick Joystick;
@@ -148,14 +148,12 @@
 /// create struct variable
 Joystick joystick;
 
+/**
+The main function where the program takes place
+*/
 int main();
 
 /**
-Displays an error message
-*/
-void error();
-
-/**
 set-up serial port
 */
 void init_serial();
@@ -273,7 +271,7 @@
 Check for intrersection
 @param i loops through x direction
 @param j loops through y direction
-@returns the number of pixels aroun the hero detected
+@returns the number of pixels around the hero detected
 */
 int intersection(int i, int j);
 
@@ -331,8 +329,6 @@
 
 int state1 = 1; /*!< controls the direction of the objtacle */
 
-//int menuY = 5; /*!< controls the position of the circle selector */
-
 int speed = 1; /*!< controls the speed menu display  */
 
 bool normal=0; /*!< controls the lcd mode selection on menu */