Dependencies:   MMA8452 N5110 PowerControl beep mbed

Committer:
stevenle93
Date:
Sat May 02 20:29:52 2015 +0000
Revision:
2:57d1ed1f0ad3
Parent:
1:92f77de19aad
Child:
3:1974db5993ef
This version contains a menu for game. The menu has sections as follow: High Score, Main Menu, Game.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stevenle93 1:92f77de19aad 1 /**
stevenle93 1:92f77de19aad 2 @file Game.h
stevenle93 1:92f77de19aad 3
stevenle93 1:92f77de19aad 4 @brief Header file of the game rule which contain member functions, variables and functions definition
stevenle93 1:92f77de19aad 5
stevenle93 1:92f77de19aad 6 */
stevenle93 1:92f77de19aad 7
stevenle93 1:92f77de19aad 8 #ifndef GAME_H
stevenle93 1:92f77de19aad 9 #define GAME_H
stevenle93 1:92f77de19aad 10
stevenle93 1:92f77de19aad 11 #include "mbed.h"
stevenle93 1:92f77de19aad 12 #include "MMA8452.h"
stevenle93 1:92f77de19aad 13 #include "N5110.h"
stevenle93 2:57d1ed1f0ad3 14 #include "Clock.h"
stevenle93 1:92f77de19aad 15
stevenle93 1:92f77de19aad 16
stevenle93 1:92f77de19aad 17 class Game
stevenle93 1:92f77de19aad 18 {
stevenle93 1:92f77de19aad 19 private:
stevenle93 1:92f77de19aad 20 /**
stevenle93 1:92f77de19aad 21 * @param The variable Score is used to store score of user when
stevenle93 1:92f77de19aad 22 * @param the accelerometer excessed a threshold value.
stevenle93 1:92f77de19aad 23 */
stevenle93 2:57d1ed1f0ad3 24
stevenle93 1:92f77de19aad 25
stevenle93 1:92f77de19aad 26 /**
stevenle93 1:92f77de19aad 27 * @param The acceleration variable recalled from MMA8452.h
stevenle93 1:92f77de19aad 28 */
stevenle93 1:92f77de19aad 29 Acceleration accel; // Acceleration variable declared in MMA8452 class
stevenle93 1:92f77de19aad 30
stevenle93 1:92f77de19aad 31 public:
stevenle93 1:92f77de19aad 32 /**
stevenle93 1:92f77de19aad 33 * The GameRule member function has a bsic rule of converting acceleration value into score
stevenle93 1:92f77de19aad 34 */
stevenle93 1:92f77de19aad 35 void GameRule();
stevenle93 2:57d1ed1f0ad3 36 int score; // Variable to store scores has a data type of interger
stevenle93 2:57d1ed1f0ad3 37 void Reset();
stevenle93 1:92f77de19aad 38 };
stevenle93 1:92f77de19aad 39
stevenle93 1:92f77de19aad 40 void Game::GameRule ()
stevenle93 1:92f77de19aad 41 {
stevenle93 1:92f77de19aad 42
stevenle93 2:57d1ed1f0ad3 43 accel = mma8452.readValues(); // Read the value from MMA8452 sensor
stevenle93 2:57d1ed1f0ad3 44 if (accel.x > 2 || accel.x < -2) { // If the value of accelerator data exceed 3g, the score will increase by one unit
stevenle93 2:57d1ed1f0ad3 45 score++;
stevenle93 2:57d1ed1f0ad3 46 char scorebuffer[14];
stevenle93 1:92f77de19aad 47
stevenle93 2:57d1ed1f0ad3 48 int scorelength = sprintf(scorebuffer,"Score:%d",score); //Score will be displayed as Signed Decimal Interger number
stevenle93 2:57d1ed1f0ad3 49 if (scorelength <=14) {
stevenle93 2:57d1ed1f0ad3 50 lcd.printString(scorebuffer,3,3);
stevenle93 1:92f77de19aad 51 }
stevenle93 2:57d1ed1f0ad3 52 } else if (accel.x < 2 && accel.x > -2) { // Otherwise, if the score is unchange
stevenle93 2:57d1ed1f0ad3 53 lcd.printString("Have a shake",0,0); // Display a small notice to the user
stevenle93 1:92f77de19aad 54 }
stevenle93 1:92f77de19aad 55 }
stevenle93 2:57d1ed1f0ad3 56
stevenle93 2:57d1ed1f0ad3 57 void Game::Reset()
stevenle93 2:57d1ed1f0ad3 58 {
stevenle93 2:57d1ed1f0ad3 59 score = 0;
stevenle93 2:57d1ed1f0ad3 60 CClock = 60;
stevenle93 2:57d1ed1f0ad3 61 }
stevenle93 1:92f77de19aad 62 #endif