Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 25:28c57be06933, committed 2018-05-08
- Comitter:
- ahmedhedait
- Date:
- Tue May 08 14:20:24 2018 +0000
- Parent:
- 24:166d726b0f13
- Commit message:
- I have re-adjusted my last comments so the code to be completed.
Changed in this revision
diff -r 166d726b0f13 -r 28c57be06933 Ball/Ball.cpp --- a/Ball/Ball.cpp Tue May 08 13:39:31 2018 +0000 +++ b/Ball/Ball.cpp Tue May 08 14:20:24 2018 +0000 @@ -27,6 +27,7 @@ void Ball::update(Direction dir) { + // ADJUSTING THE SPEED OF THE BALL FOR THE 4 DIFFERENT DIRECTIONS. if (dir == N) { _circy -= _speed; } else if (dir == S) { @@ -39,7 +40,7 @@ _circx += _speed; } - // THIS CODE IS NEEDED TO MAKE SURE THAT THE BALL DOES NOT OFF THE DIMENSIONS OF THE LCD SCREEN. + // THIS CODE IS NEEDED TO MAKE SURE THAT THE BALL DOES NOT SURPASS THE DIMENSIONS OF THE LCD SCREEN. if (_circy < 3) { _circy = 3; } @@ -51,7 +52,6 @@ if (_circx < 3) { _circx = 3; } - } Vector2D Ball::get_pos() { @@ -61,7 +61,7 @@ void Ball::check_wall_collision(Gamepad &pad) { - // FOR LOOP TO STOP BALL FROM GOING THROUGH WALLS + // FOR LOOP TO STOP BALL FROM GOING THROUGH WALLS OF THE MAZE. for (int i = 0; i <= 12; i++) { //printf(" Stage %d\n", i); @@ -153,14 +153,17 @@ _d = 1; } - + // ADDED A PRINT FUNCTION TO DETECT IF COLLISION OCCURED BETWEEN BALL AND WALL OR NOT IN THE GIVEN DIMENSIONS. if ( (_circy >= _b - 2) && //top (_circy <= 1 + _b + _d) && //bottom (_circx >= _a - 2) && //left (_circx <= _a + _c + 1) //right ) { - printf("COLLISION"); + // printf("COLLISION"); + + /* CONDITIONS FOR THE 4 DIRECTIONS FOR EACH RECTANGLE NEEDS TO BE MET SO THAT THE BALL DOES NOT PASS + THE DIFFERENT WALLS OF THE MAZE. */ //left if (_circx <= _a - 2) { if(_circx >= _a - 3) { @@ -192,8 +195,9 @@ } - // WHEN THE BALL REACHES THE Y-AXIS NEEDED WHICH IS 27, THEN THE JOYSTICK FREELY MOVE THE BALL RIGHT THROUGH THE OPENING OF THE SMAZE WALL, - // HOWEVER, IF THE BALL IS NOT EQUAL TO THE Y-AXIS NEEDED, THEN THE BALL MUST BE RESTRICTED TO MOVING SO THAT IT DOES NOT PASS THE WALLS. + /* GAVE THE AXIS NEEEDED FOR THE BALL TO GET OUT AND ONLY OUT OF THE OPENING OF THE MAZE. WEHN THE CONDITIONS ARE + NOT MEANT, THEN IT RESTRICTS THE BALL FROM MOVING OUTSIDE THE MAZE */ + if (_circy == 27) { if (_circx > WIDTH) { _circx = WIDTH;
diff -r 166d726b0f13 -r 28c57be06933 Maze/Maze.cpp --- a/Maze/Maze.cpp Tue May 08 13:39:31 2018 +0000 +++ b/Maze/Maze.cpp Tue May 08 14:20:24 2018 +0000 @@ -13,11 +13,11 @@ void Maze::draw(N5110 &lcd) { - //I HAVE DRAWN THE RECTNAGLE OF THE MAZE IN TO START + // BORDERS OF THE MAZE STARTING AT (0,0), FILLING THE WHOLE SCREEN AND IS TRANSPARENT. lcd.drawRect(0,0,84,48,FILL_TRANSPARENT); - // I HAVE DRAWN THE WALLS OF THE MAZE AS RECTANGLES AND JOINED THEM UP IN WHICH TO CREATE THE WALLS OF THE MAZE. - // a b c d + // INTERIOR WALLS OF THE MAZE ARE DRAWN AS RECTANGLE SEPARATELY. + // _a_b_c _d lcd.drawRect(10,0,1,39,FILL_BLACK); lcd.drawRect(18,32,1,15,FILL_BLACK); lcd.drawRect(18,25,18,1,FILL_BLACK); @@ -33,7 +33,8 @@ lcd.drawRect(64,40,20,1,FILL_BLACK); - // I REMOVED SOME PIXELS FROM THE RIGHT SIDE OF THE MAZE TO CREATE THE OPENING IN WHICH THE BALL SHOULD GO THROUGH. + /* SOME PIXALS ARE REMOVED FROM THE RIGHT SIDE OF THE MAZE TO CREATE THE OPENING FOR + THE BALL TO PASS THROUGH. */ lcd.setPixel(83,24,false); lcd.setPixel(83,25,false); lcd.setPixel(83,26,false);
diff -r 166d726b0f13 -r 28c57be06933 MazeEngine/MazeEngine.cpp --- a/MazeEngine/MazeEngine.cpp Tue May 08 13:39:31 2018 +0000 +++ b/MazeEngine/MazeEngine.cpp Tue May 08 14:20:24 2018 +0000 @@ -30,20 +30,20 @@ void MazeEngine::draw(N5110 &lcd) { - // draw the elements in the LCD buffer - // maze + // DRAW THE ELEMENTS OF MAZE. _maze.draw(lcd); - // ball + // BALL DRAWING _ball.draw(lcd); - // HERE IS A SIMPLE CODE THAT WHEN THE BALL PASS THROUGH THE OPENING THEN THE SCREEN SHOULD BE CLEARED IN WHICH BRAVO IS PRINTED TO - // TELL THE USER THE GAME IS FINISHED. + /* HERE IS A SIMPLE CODE THAT WHEN THE BALL PASS THROUGH THE OPENING THEN THE SCREEN SHOULD BE CLEARED IN WHICH BRAVO IS PRINTED TO + TELL THE USER THE GAME IS FINISHED. */ if (ball_pos.x > 83 & ball_pos.y == 27) { print_win(lcd); } } +// CHECK IF THE GOAL IS MET, AND GIVE THE USER ABILITY TO RESTART THE GAME AGAIN. void MazeEngine::check_goal(Gamepad &pad) { ball_pos = _ball.get_pos(); @@ -54,9 +54,10 @@ } } +// CHECK IF THE GOAL IS MET, AND PRINT OUT TO THE LCD SCREEN. void MazeEngine::print_win(N5110 &lcd) { lcd.clear(); - lcd.printString(" Bravo! ",12,2); + lcd.printString(" WELL DONE! ",3,2); lcd.printString(" Press Start ",0,4); } \ No newline at end of file