Dependencies: MMA8452 N5110 PowerControl beep mbed
Game.h@2:57d1ed1f0ad3, 2015-05-02 (annotated)
- 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?
User | Revision | Line number | New 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 |