Tetris game for mbed.
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
Fork of HelloWorld by
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
Generated on Sat Jul 23 2022 12:39:35 by 1.7.2