Tetris game for mbed.

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

Fork of HelloWorld by Simon Ford

Revision:
2:36cda8980746
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tetris.h	Mon Nov 07 00:43:45 2016 +0000
@@ -0,0 +1,81 @@
+#ifndef TETRIS_H
+#define TETRIS_H
+
+#define DIMX 8 //10
+#define DIMY 4
+#define DIMZ 22
+#define DIMLOSE 18
+#define LINE0 0x000F000F000F000FULL
+#define LINE1 0x00F000F000F000F0ULL
+#define LINE2 0x0F000F000F000F00ULL
+#define LINE3 0xF000F000F000F000ULL
+#define FACE0 0x000000000000FFFFULL
+#define FACE1 0x00000000FFFF0000ULL
+#define FACE2 0x0000FFFF00000000ULL
+#define FACE3 0xFFFF000000000000ULL
+#define SET_SIZE 7
+
+static unsigned long long block_list[] = {0x0033003300330033ULL, 0x000000000000000FULL, 0x0000000000000017ULL,
+                                     0x000000000000008EULL, 0x00000000000000C6ULL, 0x0000000000000036ULL,
+                                     0X000100010001111FULL};
+                                     //51, 15, 23, 142, 198, 54, 281479271747871
+
+class Block {
+    public:
+        unsigned long long block;
+        int offset;
+        int height;
+        
+        Block();
+        Block(short);
+        Block(short, short, short);
+        unsigned long long getFace(int);
+        unsigned long long getLine(int);
+        unsigned long long getFaceLine(int,int);
+        void rotY();
+        void rotZ();
+        void rotX();
+        void movR();
+        void movL();
+        void movB();
+        void movF();
+        void movU();
+        void movD();       
+};
+
+class Board{
+    
+    public:
+        Board();
+        void setBlock();
+        void setBlockFaceLine(int,int);
+        void setBlockFaceLineVal(int,int,unsigned long long);
+        int check();
+        int checkFaceLine(int,int);
+        void updateBlock();
+        void checkAndUpdate();
+        void drawGrid();
+        void drawBlock(Block);
+        void eraseBlock(Block);
+        unsigned long long line[DIMZ+4];
+        Block activeBlock;
+        Block nextBlock;
+        void drawPix(int,int,int);
+        void erasePix(int,int,int);
+        void getNewBlock();
+        unsigned long long getFaceLine(int,int);
+        void checkForClear(int);
+        void clearLine(int);
+        int score;
+        void redrawBoardLine(int, int, unsigned long long);
+        void drawScore();
+        void blockFall();
+        int lost;
+        void checkLose();
+};
+
+unsigned long long shift(unsigned long long,int);
+
+
+
+#endif
\ No newline at end of file