Tetris game on mikroTFT touchscreen and LPC1768

Dependencies:   Tetris

Dependents:   Tetris

Committer:
sergun2311
Date:
Sat Feb 25 23:52:28 2017 +0000
Revision:
1:b4aa36ae11ac
Parent:
0:645509d95b8d
Child:
2:6b6986c3d2bd
Tetris with gestures

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sergun2311 0:645509d95b8d 1 #include "mbed.h"
sergun2311 0:645509d95b8d 2 #include <ctime>
sergun2311 0:645509d95b8d 3 #include "playGround.h"
sergun2311 0:645509d95b8d 4 #include "Block.h"
sergun2311 1:b4aa36ae11ac 5 #include "Field.h"
sergun2311 0:645509d95b8d 6
sergun2311 1:b4aa36ae11ac 7 #define SPEED 100
sergun2311 0:645509d95b8d 8
sergun2311 0:645509d95b8d 9 int main()
sergun2311 0:645509d95b8d 10 {
sergun2311 1:b4aa36ae11ac 11 int score = 0;
sergun2311 1:b4aa36ae11ac 12 bool flag;
sergun2311 0:645509d95b8d 13 clock_t start_s;
sergun2311 0:645509d95b8d 14 TFTInit();
sergun2311 0:645509d95b8d 15 drawMap();
sergun2311 0:645509d95b8d 16 while (1) {
sergun2311 0:645509d95b8d 17 Block NewBlock;
sergun2311 1:b4aa36ae11ac 18 flag = false;
sergun2311 0:645509d95b8d 19 drawMap();
sergun2311 1:b4aa36ae11ac 20 while( !flag ) {
sergun2311 0:645509d95b8d 21 drawMap();
sergun2311 0:645509d95b8d 22 drawBlock(NewBlock);
sergun2311 1:b4aa36ae11ac 23 start_s = clock();
sergun2311 0:645509d95b8d 24 while( start_s + SPEED > clock() ) {
sergun2311 1:b4aa36ae11ac 25 if ( TouchStatus() ) {
sergun2311 1:b4aa36ae11ac 26 clrBlock(NewBlock);
sergun2311 1:b4aa36ae11ac 27 NewBlock = doGest(NewBlock);
sergun2311 1:b4aa36ae11ac 28 drawBlock(NewBlock);
sergun2311 1:b4aa36ae11ac 29 wait_ms(50);
sergun2311 1:b4aa36ae11ac 30 }
sergun2311 0:645509d95b8d 31 }
sergun2311 0:645509d95b8d 32 if ( NewBlock.CheckBottom() ) {
sergun2311 0:645509d95b8d 33 saveToField(NewBlock);
sergun2311 1:b4aa36ae11ac 34 flag = true;
sergun2311 0:645509d95b8d 35 } else {
sergun2311 0:645509d95b8d 36 clrBlock(NewBlock);
sergun2311 0:645509d95b8d 37 NewBlock.y += 1;
sergun2311 1:b4aa36ae11ac 38 drawBlock(NewBlock);
sergun2311 0:645509d95b8d 39 }
sergun2311 0:645509d95b8d 40 }
sergun2311 1:b4aa36ae11ac 41 score += checkLine();
sergun2311 1:b4aa36ae11ac 42 if ( checkGameOver() )
sergun2311 1:b4aa36ae11ac 43 break;
sergun2311 0:645509d95b8d 44 }
sergun2311 1:b4aa36ae11ac 45 gameOver(score);
sergun2311 0:645509d95b8d 46 }