Tetris game for mbed.

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player

Fork of HelloWorld by Simon Ford

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers tetris.h Source File

tetris.h

00001 #ifndef TETRIS_H
00002 #define TETRIS_H
00003 
00004 #define DIMX 8 //10
00005 #define DIMY 4
00006 #define DIMZ 22
00007 #define DIMLOSE 18
00008 #define LINE0 0x000F000F000F000FULL
00009 #define LINE1 0x00F000F000F000F0ULL
00010 #define LINE2 0x0F000F000F000F00ULL
00011 #define LINE3 0xF000F000F000F000ULL
00012 #define FACE0 0x000000000000FFFFULL
00013 #define FACE1 0x00000000FFFF0000ULL
00014 #define FACE2 0x0000FFFF00000000ULL
00015 #define FACE3 0xFFFF000000000000ULL
00016 #define SET_SIZE 7
00017 
00018 static unsigned long long block_list[] = {0x0033003300330033ULL, 0x000000000000000FULL, 0x0000000000000017ULL,
00019                                      0x000000000000008EULL, 0x00000000000000C6ULL, 0x0000000000000036ULL,
00020                                      0X000100010001111FULL};
00021                                      //51, 15, 23, 142, 198, 54, 281479271747871
00022 
00023 class Block {
00024     public:
00025         unsigned long long block;
00026         int offset;
00027         int height;
00028         
00029         Block();
00030         Block(short);
00031         Block(short, short, short);
00032         unsigned long long getFace(int);
00033         unsigned long long getLine(int);
00034         unsigned long long getFaceLine(int,int);
00035         void rotY();
00036         void rotZ();
00037         void rotX();
00038         void movR();
00039         void movL();
00040         void movB();
00041         void movF();
00042         void movU();
00043         void movD();       
00044 };
00045 
00046 class Board{
00047     
00048     public:
00049         Board();
00050         void setBlock();
00051         void setBlockFaceLine(int,int);
00052         void setBlockFaceLineVal(int,int,unsigned long long);
00053         int check();
00054         int checkFaceLine(int,int);
00055         void updateBlock();
00056         void checkAndUpdate();
00057         void drawGrid();
00058         void drawBlock(Block);
00059         void eraseBlock(Block);
00060         unsigned long long line[DIMZ+4];
00061         Block activeBlock;
00062         Block nextBlock;
00063         void drawPix(int,int,int);
00064         void erasePix(int,int,int);
00065         void getNewBlock();
00066         unsigned long long getFaceLine(int,int);
00067         void checkForClear(int);
00068         void clearLine(int);
00069         int score;
00070         void redrawBoardLine(int, int, unsigned long long);
00071         void drawScore();
00072         void blockFall();
00073         int lost;
00074         void checkLose();
00075 };
00076 
00077 unsigned long long shift(unsigned long long,int);
00078 
00079 
00080 
00081 #endif