test test test

Dependencies:   mbed

Committer:
mohamedmoawya
Date:
Mon May 25 19:06:11 2020 +0000
Revision:
0:e4c5e6ec922e
snake game tteest

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mohamedmoawya 0:e4c5e6ec922e 1 #include "SnakeEngine.h"
mohamedmoawya 0:e4c5e6ec922e 2 SnakeEngine::SnakeEngine(Gamepad &pad, N5110 &display):gamePad(pad), lcd(display){
mohamedmoawya 0:e4c5e6ec922e 3
mohamedmoawya 0:e4c5e6ec922e 4 }
mohamedmoawya 0:e4c5e6ec922e 5 SnakeEngine::~SnakeEngine(){
mohamedmoawya 0:e4c5e6ec922e 6
mohamedmoawya 0:e4c5e6ec922e 7 }
mohamedmoawya 0:e4c5e6ec922e 8
mohamedmoawya 0:e4c5e6ec922e 9 void SnakeEngine::drawSnake(){
mohamedmoawya 0:e4c5e6ec922e 10 for(int i=0;i<snakeSize;i++)
mohamedmoawya 0:e4c5e6ec922e 11 lcd.drawRect(snake[i].X,snake[i].Y,gameObjectSize,gameObjectSize,FILL_BLACK);
mohamedmoawya 0:e4c5e6ec922e 12
mohamedmoawya 0:e4c5e6ec922e 13 }
mohamedmoawya 0:e4c5e6ec922e 14
mohamedmoawya 0:e4c5e6ec922e 15 void SnakeEngine::drawFood(){
mohamedmoawya 0:e4c5e6ec922e 16 lcd.drawRect(food.X,food.Y,gameObjectSize,gameObjectSize,FILL_BLACK);
mohamedmoawya 0:e4c5e6ec922e 17
mohamedmoawya 0:e4c5e6ec922e 18 }
mohamedmoawya 0:e4c5e6ec922e 19
mohamedmoawya 0:e4c5e6ec922e 20 void SnakeEngine::drawScore(){
mohamedmoawya 0:e4c5e6ec922e 21 char buffer1[14];
mohamedmoawya 0:e4c5e6ec922e 22 sprintf(buffer1,"S:%2d H:%2d",gameScore,gameLife);
mohamedmoawya 0:e4c5e6ec922e 23 lcd.printString(buffer1,0,0);
mohamedmoawya 0:e4c5e6ec922e 24 }
mohamedmoawya 0:e4c5e6ec922e 25
mohamedmoawya 0:e4c5e6ec922e 26 void SnakeEngine::drawGameFrame(){
mohamedmoawya 0:e4c5e6ec922e 27 lcd.clear();
mohamedmoawya 0:e4c5e6ec922e 28 drawScore();
mohamedmoawya 0:e4c5e6ec922e 29 lcd.drawLine(0,10,83,10,1);
mohamedmoawya 0:e4c5e6ec922e 30 drawSnake();
mohamedmoawya 0:e4c5e6ec922e 31 drawFood();
mohamedmoawya 0:e4c5e6ec922e 32 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 33 }
mohamedmoawya 0:e4c5e6ec922e 34
mohamedmoawya 0:e4c5e6ec922e 35 void SnakeEngine::regenFood(){
mohamedmoawya 0:e4c5e6ec922e 36 do{
mohamedmoawya 0:e4c5e6ec922e 37 food.X = rand() % (AREA_X + 1 - 12) + 12;//random(2,AREA_X);
mohamedmoawya 0:e4c5e6ec922e 38 } while(food.X % gameObjectSize != 0);
mohamedmoawya 0:e4c5e6ec922e 39 do {
mohamedmoawya 0:e4c5e6ec922e 40 food.Y = rand() % (AREA_Y + 1 - 12) + 12;//random(2,AREA_Y);
mohamedmoawya 0:e4c5e6ec922e 41 } while(food.Y % gameObjectSize != 0);
mohamedmoawya 0:e4c5e6ec922e 42 }
mohamedmoawya 0:e4c5e6ec922e 43
mohamedmoawya 0:e4c5e6ec922e 44 void SnakeEngine::isColliding(){
mohamedmoawya 0:e4c5e6ec922e 45 //if snake is eating food
mohamedmoawya 0:e4c5e6ec922e 46 if((snake[0].X == food.X) && (snake[0].Y == food.Y)){
mohamedmoawya 0:e4c5e6ec922e 47 //turn on LEDs momentarily when eating food
mohamedmoawya 0:e4c5e6ec922e 48 gamePad.leds_on();
mohamedmoawya 0:e4c5e6ec922e 49 wait(0.1);
mohamedmoawya 0:e4c5e6ec922e 50 gamePad.leds_off();
mohamedmoawya 0:e4c5e6ec922e 51 //LED effect off
mohamedmoawya 0:e4c5e6ec922e 52 snakeSize++; // grow snake
mohamedmoawya 0:e4c5e6ec922e 53 gameScore++; //increase score
mohamedmoawya 0:e4c5e6ec922e 54 regenFood(); // recreate snake food
mohamedmoawya 0:e4c5e6ec922e 55 }
mohamedmoawya 0:e4c5e6ec922e 56 else{ // snake is eating himself
mohamedmoawya 0:e4c5e6ec922e 57 for(int i=1; i<snakeSize;i++){
mohamedmoawya 0:e4c5e6ec922e 58 if((snake[0].X == snake[i].X) && (snake[0].Y == snake[i].Y)){
mohamedmoawya 0:e4c5e6ec922e 59 gamePad.tone(1000.0,0.1);
mohamedmoawya 0:e4c5e6ec922e 60 gameLife--;
mohamedmoawya 0:e4c5e6ec922e 61 if(gameLife == 0)
mohamedmoawya 0:e4c5e6ec922e 62 state = GAMEOVER;
mohamedmoawya 0:e4c5e6ec922e 63 else
mohamedmoawya 0:e4c5e6ec922e 64 state = NEWLIFE;
mohamedmoawya 0:e4c5e6ec922e 65 }
mohamedmoawya 0:e4c5e6ec922e 66 }
mohamedmoawya 0:e4c5e6ec922e 67 }
mohamedmoawya 0:e4c5e6ec922e 68 /*
mohamedmoawya 0:e4c5e6ec922e 69 //snake is going to hit a wall
mohamedmoawya 0:e4c5e6ec922e 70 if((snake[0].X < AREA_X_min) || (snake[0].Y < AREA_Y_min) || (snake[0].X>AREA_X) || (snake[0].Y > AREA_Y)){
mohamedmoawya 0:e4c5e6ec922e 71 gamePad.tone(1000.0,1);
mohamedmoawya 0:e4c5e6ec922e 72 gameLife--;
mohamedmoawya 0:e4c5e6ec922e 73 if(gameLife == 0)
mohamedmoawya 0:e4c5e6ec922e 74 state = GAMEOVER;
mohamedmoawya 0:e4c5e6ec922e 75 else
mohamedmoawya 0:e4c5e6ec922e 76 state = NEWLIFE;
mohamedmoawya 0:e4c5e6ec922e 77 }
mohamedmoawya 0:e4c5e6ec922e 78 */
mohamedmoawya 0:e4c5e6ec922e 79 /*******************update********************/
mohamedmoawya 0:e4c5e6ec922e 80 //start
mohamedmoawya 0:e4c5e6ec922e 81 if (snake[0].X <= AREA_X_min)
mohamedmoawya 0:e4c5e6ec922e 82 snake[0].X = AREA_X;
mohamedmoawya 0:e4c5e6ec922e 83 else if (snake[0].X >= AREA_X)
mohamedmoawya 0:e4c5e6ec922e 84 snake[0].X = AREA_X_min;
mohamedmoawya 0:e4c5e6ec922e 85
mohamedmoawya 0:e4c5e6ec922e 86 if (snake[0].Y <= AREA_Y_min)
mohamedmoawya 0:e4c5e6ec922e 87 snake[0].Y = AREA_Y;
mohamedmoawya 0:e4c5e6ec922e 88 else if (snake[0].Y >= AREA_Y)
mohamedmoawya 0:e4c5e6ec922e 89 snake[0].Y = AREA_Y_min;
mohamedmoawya 0:e4c5e6ec922e 90 //end
mohamedmoawya 0:e4c5e6ec922e 91
mohamedmoawya 0:e4c5e6ec922e 92 /*******************update********************/
mohamedmoawya 0:e4c5e6ec922e 93 }
mohamedmoawya 0:e4c5e6ec922e 94
mohamedmoawya 0:e4c5e6ec922e 95
mohamedmoawya 0:e4c5e6ec922e 96
mohamedmoawya 0:e4c5e6ec922e 97 void SnakeEngine::setupGame(){
mohamedmoawya 0:e4c5e6ec922e 98 snakeSize = 3; // initial size of the snake
mohamedmoawya 0:e4c5e6ec922e 99 dirSnake = 1; // initialize snake direction
mohamedmoawya 0:e4c5e6ec922e 100 //initialize snake body
mohamedmoawya 0:e4c5e6ec922e 101 for(int i=1;i<snakeSize;i++){
mohamedmoawya 0:e4c5e6ec922e 102 snake[i].X = 0;
mohamedmoawya 0:e4c5e6ec922e 103 snake[i].Y = 0;
mohamedmoawya 0:e4c5e6ec922e 104 }
mohamedmoawya 0:e4c5e6ec922e 105 snake[0].X = 12;//head_x;
mohamedmoawya 0:e4c5e6ec922e 106 snake[0].Y = AREA_Y_min;//head_y;
mohamedmoawya 0:e4c5e6ec922e 107
mohamedmoawya 0:e4c5e6ec922e 108 // decide where the body of the sanke goes
mohamedmoawya 0:e4c5e6ec922e 109
mohamedmoawya 0:e4c5e6ec922e 110 for(int i=1;i<snakeSize;i++){
mohamedmoawya 0:e4c5e6ec922e 111 int dir = 0;//rand() % 4;//random(0,3);
mohamedmoawya 0:e4c5e6ec922e 112
mohamedmoawya 0:e4c5e6ec922e 113 if(dir == 0){ // if the snake is facing left
mohamedmoawya 0:e4c5e6ec922e 114 snake[i].X = snake[i-1].X - gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 115 snake[i].Y = snake[i-1].Y;
mohamedmoawya 0:e4c5e6ec922e 116 }
mohamedmoawya 0:e4c5e6ec922e 117 else if(dir == 1){ // if the snake is facing right
mohamedmoawya 0:e4c5e6ec922e 118 snake[i].X = snake[i-1].X + gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 119 snake[i].Y = snake[i-1].Y;
mohamedmoawya 0:e4c5e6ec922e 120 }
mohamedmoawya 0:e4c5e6ec922e 121 else if(dir == 2){ // if snake is facing up
mohamedmoawya 0:e4c5e6ec922e 122 snake[i].X = snake[i-1].X;
mohamedmoawya 0:e4c5e6ec922e 123 snake[i].Y = snake[i-1].Y - gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 124 }
mohamedmoawya 0:e4c5e6ec922e 125 else if(dir == 3){
mohamedmoawya 0:e4c5e6ec922e 126 snake[i].X = snake[i-1].X;
mohamedmoawya 0:e4c5e6ec922e 127 snake[i].Y = snake[i-1].Y + gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 128 }
mohamedmoawya 0:e4c5e6ec922e 129 }
mohamedmoawya 0:e4c5e6ec922e 130
mohamedmoawya 0:e4c5e6ec922e 131 //regenerate snake food
mohamedmoawya 0:e4c5e6ec922e 132 regenFood();
mohamedmoawya 0:e4c5e6ec922e 133
mohamedmoawya 0:e4c5e6ec922e 134 state = PAUSE; // change the game state once setup
mohamedmoawya 0:e4c5e6ec922e 135 }
mohamedmoawya 0:e4c5e6ec922e 136
mohamedmoawya 0:e4c5e6ec922e 137 void SnakeEngine::readUserInput(){
mohamedmoawya 0:e4c5e6ec922e 138 // read left button
mohamedmoawya 0:e4c5e6ec922e 139 bLeft = gamePad.Y_pressed();
mohamedmoawya 0:e4c5e6ec922e 140 //read right button
mohamedmoawya 0:e4c5e6ec922e 141 bRight = gamePad.A_pressed();
mohamedmoawya 0:e4c5e6ec922e 142 //read up button
mohamedmoawya 0:e4c5e6ec922e 143 bUp = gamePad.X_pressed();
mohamedmoawya 0:e4c5e6ec922e 144 //read down button
mohamedmoawya 0:e4c5e6ec922e 145 bDown = gamePad.B_pressed();
mohamedmoawya 0:e4c5e6ec922e 146 }
mohamedmoawya 0:e4c5e6ec922e 147
mohamedmoawya 0:e4c5e6ec922e 148 void SnakeEngine::handleUserInput() {
mohamedmoawya 0:e4c5e6ec922e 149
mohamedmoawya 0:e4c5e6ec922e 150 readUserInput();
mohamedmoawya 0:e4c5e6ec922e 151
mohamedmoawya 0:e4c5e6ec922e 152 if((bLeft != false) && (dirSnake != 1))
mohamedmoawya 0:e4c5e6ec922e 153 dirSnake = 0;
mohamedmoawya 0:e4c5e6ec922e 154 if((bRight != false) && (dirSnake != 0))
mohamedmoawya 0:e4c5e6ec922e 155 dirSnake = 1;
mohamedmoawya 0:e4c5e6ec922e 156 if((bDown != false) && (dirSnake != 3))
mohamedmoawya 0:e4c5e6ec922e 157 dirSnake = 2;
mohamedmoawya 0:e4c5e6ec922e 158 if((bUp != false) && (dirSnake != 2))
mohamedmoawya 0:e4c5e6ec922e 159 dirSnake = 3;
mohamedmoawya 0:e4c5e6ec922e 160 }
mohamedmoawya 0:e4c5e6ec922e 161
mohamedmoawya 0:e4c5e6ec922e 162 void SnakeEngine::updateGame(){
mohamedmoawya 0:e4c5e6ec922e 163 //update body of the snake
mohamedmoawya 0:e4c5e6ec922e 164 for(int i= snakeSize-1;i>0;i--){
mohamedmoawya 0:e4c5e6ec922e 165 snake[i].X = snake[i-1].X;
mohamedmoawya 0:e4c5e6ec922e 166 snake[i].Y = snake[i-1].Y;
mohamedmoawya 0:e4c5e6ec922e 167 }
mohamedmoawya 0:e4c5e6ec922e 168
mohamedmoawya 0:e4c5e6ec922e 169 // snake is moving left
mohamedmoawya 0:e4c5e6ec922e 170 if(dirSnake == 0)
mohamedmoawya 0:e4c5e6ec922e 171 snake[0].X -= gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 172 else if(dirSnake == 1) // snake is moving right
mohamedmoawya 0:e4c5e6ec922e 173 snake[0].X += gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 174 else if(dirSnake == 2) // snake is moving up
mohamedmoawya 0:e4c5e6ec922e 175 snake[0].Y += gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 176 else if(dirSnake == 3) // snake is moving down
mohamedmoawya 0:e4c5e6ec922e 177 snake[0].Y -= gameObjectSize;
mohamedmoawya 0:e4c5e6ec922e 178 }
mohamedmoawya 0:e4c5e6ec922e 179
mohamedmoawya 0:e4c5e6ec922e 180 void SnakeEngine::playGame(){
mohamedmoawya 0:e4c5e6ec922e 181 isColliding();
mohamedmoawya 0:e4c5e6ec922e 182 if(state != NEWLIFE && state != GAMEOVER){
mohamedmoawya 0:e4c5e6ec922e 183 handleUserInput();
mohamedmoawya 0:e4c5e6ec922e 184 updateGame();
mohamedmoawya 0:e4c5e6ec922e 185 drawGameFrame();
mohamedmoawya 0:e4c5e6ec922e 186 }
mohamedmoawya 0:e4c5e6ec922e 187
mohamedmoawya 0:e4c5e6ec922e 188 //clear game
mohamedmoawya 0:e4c5e6ec922e 189
mohamedmoawya 0:e4c5e6ec922e 190 }
mohamedmoawya 0:e4c5e6ec922e 191
mohamedmoawya 0:e4c5e6ec922e 192 void SnakeEngine::gameIsPaused(){
mohamedmoawya 0:e4c5e6ec922e 193 readUserInput();
mohamedmoawya 0:e4c5e6ec922e 194
mohamedmoawya 0:e4c5e6ec922e 195 // if paused, wait for a user input
mohamedmoawya 0:e4c5e6ec922e 196 if((bLeft != false) || (bRight != false) || (bDown != false) || (bUp != false))
mohamedmoawya 0:e4c5e6ec922e 197 state = INGAME;
mohamedmoawya 0:e4c5e6ec922e 198
mohamedmoawya 0:e4c5e6ec922e 199 //redraw
mohamedmoawya 0:e4c5e6ec922e 200 drawGameFrame();
mohamedmoawya 0:e4c5e6ec922e 201 }
mohamedmoawya 0:e4c5e6ec922e 202 void SnakeEngine::gameIsLost(){
mohamedmoawya 0:e4c5e6ec922e 203 //redraw
mohamedmoawya 0:e4c5e6ec922e 204 lcd.clear();
mohamedmoawya 0:e4c5e6ec922e 205 lcd.printString("Game Over",0,1);
mohamedmoawya 0:e4c5e6ec922e 206 char buffer1[14];
mohamedmoawya 0:e4c5e6ec922e 207 sprintf(buffer1,"Score is %2d",gameScore);
mohamedmoawya 0:e4c5e6ec922e 208 lcd.printString(buffer1,0,4);
mohamedmoawya 0:e4c5e6ec922e 209 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 210 wait(5);
mohamedmoawya 0:e4c5e6ec922e 211 state = SETUP;
mohamedmoawya 0:e4c5e6ec922e 212 gameLife = 3;
mohamedmoawya 0:e4c5e6ec922e 213 gameScore = 0;
mohamedmoawya 0:e4c5e6ec922e 214 }
mohamedmoawya 0:e4c5e6ec922e 215 void SnakeEngine::init() {
mohamedmoawya 0:e4c5e6ec922e 216 dirSnake = 1;
mohamedmoawya 0:e4c5e6ec922e 217 gameScore = 0;
mohamedmoawya 0:e4c5e6ec922e 218 gameLife = 3;
mohamedmoawya 0:e4c5e6ec922e 219 gameObjectSize = 4;
mohamedmoawya 0:e4c5e6ec922e 220 snakeSize = 3;
mohamedmoawya 0:e4c5e6ec922e 221
mohamedmoawya 0:e4c5e6ec922e 222 state = SETUP;
mohamedmoawya 0:e4c5e6ec922e 223
mohamedmoawya 0:e4c5e6ec922e 224 bLeft = false;
mohamedmoawya 0:e4c5e6ec922e 225 bRight = false;
mohamedmoawya 0:e4c5e6ec922e 226 bDown = false;
mohamedmoawya 0:e4c5e6ec922e 227 bUp = false;
mohamedmoawya 0:e4c5e6ec922e 228
mohamedmoawya 0:e4c5e6ec922e 229 AREA_X = 82;
mohamedmoawya 0:e4c5e6ec922e 230 AREA_Y = 46;
mohamedmoawya 0:e4c5e6ec922e 231 AREA_X_min = 1;
mohamedmoawya 0:e4c5e6ec922e 232 AREA_Y_min = 12;
mohamedmoawya 0:e4c5e6ec922e 233
mohamedmoawya 0:e4c5e6ec922e 234 gameSpeed = 1;
mohamedmoawya 0:e4c5e6ec922e 235 }
mohamedmoawya 0:e4c5e6ec922e 236 void SnakeEngine::runGameEngine(){
mohamedmoawya 0:e4c5e6ec922e 237 switch(state){
mohamedmoawya 0:e4c5e6ec922e 238 case SETUP : setupGame(); break;
mohamedmoawya 0:e4c5e6ec922e 239 case PAUSE: gameIsPaused(); break;
mohamedmoawya 0:e4c5e6ec922e 240 case INGAME: playGame(); break;
mohamedmoawya 0:e4c5e6ec922e 241 case NEWLIFE: setupGame(); break;
mohamedmoawya 0:e4c5e6ec922e 242 case GAMEOVER: gameIsLost();
mohamedmoawya 0:e4c5e6ec922e 243 welcome();
mohamedmoawya 0:e4c5e6ec922e 244 break;
mohamedmoawya 0:e4c5e6ec922e 245 }
mohamedmoawya 0:e4c5e6ec922e 246 }
mohamedmoawya 0:e4c5e6ec922e 247
mohamedmoawya 0:e4c5e6ec922e 248 void SnakeEngine::welcome(){
mohamedmoawya 0:e4c5e6ec922e 249 lcd.printString(" Great Snakes ",0,1);
mohamedmoawya 0:e4c5e6ec922e 250 lcd.printString(" Press Start ",0,4);
mohamedmoawya 0:e4c5e6ec922e 251 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 252
mohamedmoawya 0:e4c5e6ec922e 253 // wait flashing LEDs until start button is pressed
mohamedmoawya 0:e4c5e6ec922e 254 while ( gamePad.start_pressed() == false) {
mohamedmoawya 0:e4c5e6ec922e 255 lcd.setContrast( gamePad.read_pot1());
mohamedmoawya 0:e4c5e6ec922e 256 gamePad.leds_on();
mohamedmoawya 0:e4c5e6ec922e 257 wait(0.1);
mohamedmoawya 0:e4c5e6ec922e 258 gamePad.leds_off();
mohamedmoawya 0:e4c5e6ec922e 259 wait(0.1);
mohamedmoawya 0:e4c5e6ec922e 260 }
mohamedmoawya 0:e4c5e6ec922e 261 lcd.clear();
mohamedmoawya 0:e4c5e6ec922e 262 char buffer1[14];
mohamedmoawya 0:e4c5e6ec922e 263 sprintf(buffer1,"Speed: %2d",gameSpeed);
mohamedmoawya 0:e4c5e6ec922e 264 lcd.printString(buffer1,5,1);
mohamedmoawya 0:e4c5e6ec922e 265 lcd.printString(" Press Start ",0,5);
mohamedmoawya 0:e4c5e6ec922e 266 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 267
mohamedmoawya 0:e4c5e6ec922e 268 //set snake speed menu
mohamedmoawya 0:e4c5e6ec922e 269 while ( gamePad.start_pressed() == false) {
mohamedmoawya 0:e4c5e6ec922e 270
mohamedmoawya 0:e4c5e6ec922e 271 if(gamePad.B_pressed()){
mohamedmoawya 0:e4c5e6ec922e 272 if(gameSpeed<4)
mohamedmoawya 0:e4c5e6ec922e 273 gameSpeed++;
mohamedmoawya 0:e4c5e6ec922e 274 lcd.clear();
mohamedmoawya 0:e4c5e6ec922e 275 char buffer1[14];
mohamedmoawya 0:e4c5e6ec922e 276 sprintf(buffer1,"Speed: %2d",gameSpeed);
mohamedmoawya 0:e4c5e6ec922e 277 lcd.printString(buffer1,5,1);
mohamedmoawya 0:e4c5e6ec922e 278 lcd.printString(" Press Start ",0,5);
mohamedmoawya 0:e4c5e6ec922e 279 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 280 }
mohamedmoawya 0:e4c5e6ec922e 281 if(gamePad.X_pressed()){
mohamedmoawya 0:e4c5e6ec922e 282 if(gameSpeed !=1)
mohamedmoawya 0:e4c5e6ec922e 283 gameSpeed--;
mohamedmoawya 0:e4c5e6ec922e 284 lcd.clear();
mohamedmoawya 0:e4c5e6ec922e 285 char buffer1[14];
mohamedmoawya 0:e4c5e6ec922e 286 sprintf(buffer1,"Speed: %2d",gameSpeed);
mohamedmoawya 0:e4c5e6ec922e 287 lcd.printString(buffer1,5,1);
mohamedmoawya 0:e4c5e6ec922e 288 lcd.printString(" Press Start ",0,5);
mohamedmoawya 0:e4c5e6ec922e 289 lcd.refresh();
mohamedmoawya 0:e4c5e6ec922e 290 }
mohamedmoawya 0:e4c5e6ec922e 291 wait(0.1);
mohamedmoawya 0:e4c5e6ec922e 292 }
mohamedmoawya 0:e4c5e6ec922e 293 }
mohamedmoawya 0:e4c5e6ec922e 294 int SnakeEngine::getGameSpeed(){
mohamedmoawya 0:e4c5e6ec922e 295 return gameSpeed;
mohamedmoawya 0:e4c5e6ec922e 296 }