Tetris game on mikroTFT touchscreen and LPC1768

Dependencies:   Tetris

Dependents:   Tetris

Committer:
sergun2311
Date:
Sat Mar 11 19:50:03 2017 +0000
Revision:
3:36de55e63fdf
Parent:
1:b4aa36ae11ac
Child:
4:107d1d5a642e
tetris

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sergun2311 0:645509d95b8d 1 #include "Field.h"
sergun2311 1:b4aa36ae11ac 2 #include "playGround.h"
sergun2311 3:36de55e63fdf 3 #include "Piece.h"
sergun2311 0:645509d95b8d 4
sergun2311 1:b4aa36ae11ac 5 #define BLACK 0
sergun2311 0:645509d95b8d 6 #define MAXX 10
sergun2311 0:645509d95b8d 7 #define MAXY 12
sergun2311 0:645509d95b8d 8
sergun2311 1:b4aa36ae11ac 9 extern int Field[MAXY][MAXX] = {0};
sergun2311 1:b4aa36ae11ac 10
sergun2311 1:b4aa36ae11ac 11 int checkLine() {
sergun2311 1:b4aa36ae11ac 12 int x, y, score = 0;
sergun2311 1:b4aa36ae11ac 13 bool status;
sergun2311 3:36de55e63fdf 14 for ( y = 0 ; y < MAXY ; y++ ) {
sergun2311 1:b4aa36ae11ac 15 status = true;
sergun2311 3:36de55e63fdf 16 for ( x = 0 ; x < MAXX ; x++ ) {
sergun2311 1:b4aa36ae11ac 17 if ( Field[y][x] == BLACK )
sergun2311 1:b4aa36ae11ac 18 status = false;
sergun2311 1:b4aa36ae11ac 19 }
sergun2311 1:b4aa36ae11ac 20 if ( status ) {
sergun2311 1:b4aa36ae11ac 21 score += 100;
sergun2311 1:b4aa36ae11ac 22 int xx, yy;
sergun2311 1:b4aa36ae11ac 23 for ( yy = y ; yy > 0 ; yy-- ) {
sergun2311 3:36de55e63fdf 24 for (xx = 0 ; xx < MAXX ; xx++ ) {
sergun2311 1:b4aa36ae11ac 25 Field[yy][xx] = Field[yy-1][xx];
sergun2311 1:b4aa36ae11ac 26 }
sergun2311 1:b4aa36ae11ac 27
sergun2311 1:b4aa36ae11ac 28 }
sergun2311 1:b4aa36ae11ac 29 }
sergun2311 1:b4aa36ae11ac 30 }
sergun2311 1:b4aa36ae11ac 31 if (score)
sergun2311 1:b4aa36ae11ac 32 drawMapV2();
sergun2311 1:b4aa36ae11ac 33 return score;
sergun2311 1:b4aa36ae11ac 34 }
sergun2311 1:b4aa36ae11ac 35
sergun2311 1:b4aa36ae11ac 36 bool checkGameOver()
sergun2311 1:b4aa36ae11ac 37 {
sergun2311 1:b4aa36ae11ac 38 int x;
sergun2311 3:36de55e63fdf 39 for ( x = 0 ; x < MAXX ; x++ )
sergun2311 1:b4aa36ae11ac 40 if ( Field[0][x] != BLACK )
sergun2311 1:b4aa36ae11ac 41 return true;
sergun2311 1:b4aa36ae11ac 42 return false;
sergun2311 3:36de55e63fdf 43 }
sergun2311 3:36de55e63fdf 44
sergun2311 3:36de55e63fdf 45 void saveToField(Block NewBlock)
sergun2311 3:36de55e63fdf 46 {
sergun2311 3:36de55e63fdf 47 int xx , yy;
sergun2311 3:36de55e63fdf 48 for ( xx = 0 ; xx < 5 ; xx++ ) {
sergun2311 3:36de55e63fdf 49 for (yy = 0 ; yy < 5 ; yy++ ) {
sergun2311 3:36de55e63fdf 50 if ( Piece[NewBlock.form][NewBlock.angle][xx][yy] != 0 )
sergun2311 3:36de55e63fdf 51 Field[NewBlock.y + yy - 2][NewBlock.x + xx - 2] =
sergun2311 3:36de55e63fdf 52 Piece[NewBlock.form][NewBlock.angle][xx][yy];
sergun2311 3:36de55e63fdf 53 }
sergun2311 3:36de55e63fdf 54 }
sergun2311 1:b4aa36ae11ac 55 }