All there but errors need fixing

Dependencies:   mbed

Overview:

Rookie Tetris is a jigsaw style game based on the classic Tetris.

A block will appear at the top of the screen, you must move it (your options for movement are left, right and down - you cannot move up the board). The block will stop when it if placed either on the floor of the board or on-top of another block.

Your goal is to fill a complete row of the board with the blocks; when you do so the row will delete and the pattern above it will drop down. The game is over when your pattern is tall enough to reach to the top of the board!

Controls:

Use the joystick to move your block! Your block cannot move out of the parameters of the board.

Pot 2 controls the contrast of the screen.

Committer:
el18rs
Date:
Wed Jun 03 19:52:59 2020 +0000
Revision:
23:cbfa9d1ee3db
Parent:
22:403759d2f093
Child:
25:a7c89c54454a
line clears and screen drops down but jumps up and down alternate blocks

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18rs 3:522c6f850e91 1 #ifndef TETRISGAME_H
el18rs 3:522c6f850e91 2 #define TETRISGAME_H
el18rs 3:522c6f850e91 3
el18rs 3:522c6f850e91 4 #include "mbed.h"
el18rs 3:522c6f850e91 5 #include "N5110.h"
el18rs 3:522c6f850e91 6 #include "Gamepad.h"
el18rs 3:522c6f850e91 7 #include "Tetromino.h"
el18rs 3:522c6f850e91 8
el18rs 23:cbfa9d1ee3db 9 class TetrisGame
el18rs 3:522c6f850e91 10 {
el18rs 23:cbfa9d1ee3db 11
el18rs 23:cbfa9d1ee3db 12 public:
el18rs 3:522c6f850e91 13 TetrisGame();
el18rs 3:522c6f850e91 14 ~TetrisGame();
el18rs 23:cbfa9d1ee3db 15
el18rs 11:0183a52c1077 16 void init(int speed);
el18rs 3:522c6f850e91 17 void read_input(Gamepad &pad);
el18rs 6:39cbec524483 18 void update(Gamepad &pad, N5110 &lcd);
el18rs 3:522c6f850e91 19 void draw(N5110 &lcd);
el18rs 15:68114eae4053 20 void fallenblocks(N5110 &lcd, int iH);
el18rs 22:403759d2f093 21 void clearline(N5110 &lcd, int iB);
el18rs 23:cbfa9d1ee3db 22 void print_scores(N5110 &lcd);
el18rs 23:cbfa9d1ee3db 23 void check_score(Gamepad &pad);
el18rs 23:cbfa9d1ee3db 24 void currentscreen(N5110 &lcd);
el18rs 4:7ddd287a5d28 25 //void play_game();
el18rs 23:cbfa9d1ee3db 26
el18rs 15:68114eae4053 27 // private:
el18rs 23:cbfa9d1ee3db 28
el18rs 6:39cbec524483 29 void check_wall_collision(Gamepad &pad, N5110 &lcd);
el18rs 6:39cbec524483 30 void check_tetromino_collisions(Gamepad &pad, N5110 &lcd);
el18rs 4:7ddd287a5d28 31 // void check_score(Gamepad &pad);
el18rs 23:cbfa9d1ee3db 32
el18rs 6:39cbec524483 33 void cancel_line(N5110 &lcd);
el18rs 6:39cbec524483 34 void exit_game(N5110 &lcd);
el18rs 23:cbfa9d1ee3db 35
el18rs 6:39cbec524483 36 // Tetromino _p1;
el18rs 23:cbfa9d1ee3db 37
el18rs 22:403759d2f093 38 int count;
el18rs 15:68114eae4053 39 volatile int X[50];
el18rs 15:68114eae4053 40 volatile int Y[50];
el18rs 22:403759d2f093 41 volatile int Z[50];
el18rs 23:cbfa9d1ee3db 42 volatile int Q[50];
el18rs 15:68114eae4053 43 volatile int floor_hit_flag;
el18rs 22:403759d2f093 44 volatile int clear_line_flag;
el18rs 15:68114eae4053 45 volatile int a;
el18rs 15:68114eae4053 46 volatile int b;
el18rs 22:403759d2f093 47 volatile int c;
el18rs 23:cbfa9d1ee3db 48 volatile int d;
el18rs 11:0183a52c1077 49 int _px;
el18rs 11:0183a52c1077 50 int _py;
el18rs 15:68114eae4053 51 int x0;
el18rs 15:68114eae4053 52 int y0;
el18rs 22:403759d2f093 53 int z0;
el18rs 23:cbfa9d1ee3db 54 int q0;
el18rs 11:0183a52c1077 55 // int _tetromino_height;
el18rs 11:0183a52c1077 56 // int _tetromino_width;
el18rs 3:522c6f850e91 57 int _speed;
el18rs 23:cbfa9d1ee3db 58 int _score;
el18rs 23:cbfa9d1ee3db 59 int buffer[84][48];
el18rs 23:cbfa9d1ee3db 60
el18rs 3:522c6f850e91 61 Tetromino _tetromino;
el18rs 23:cbfa9d1ee3db 62
el18rs 3:522c6f850e91 63 Direction _d;
el18rs 3:522c6f850e91 64 float _mag;
el18rs 3:522c6f850e91 65 };
el18rs 3:522c6f850e91 66
el18rs 3:522c6f850e91 67 #endif