Library to control the Tetris game area

Dependents:   Tetris_Game

Committer:
el14ja
Date:
Tue Apr 12 12:48:14 2016 +0000
Revision:
4:e4952be370d3
Parent:
3:af0a7a4464e5
Child:
5:16c174ded933
Version 1.0;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el14ja 2:56dc50270349 1 /** My Tetris class
el14ja 2:56dc50270349 2
el14ja 2:56dc50270349 3 @file Tetris.cpp
el14ja 2:56dc50270349 4
el14ja 2:56dc50270349 5 @brief Library containing all the functions for the game tetris
el14ja 2:56dc50270349 6
el14ja 2:56dc50270349 7 */
el14ja 2:56dc50270349 8
el14ja 2:56dc50270349 9 #include "Tetris.h"
el14ja 2:56dc50270349 10
el14ja 2:56dc50270349 11 N5110 screen (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);
el14ja 3:af0a7a4464e5 12 int tetrominoe[7][4] = {{0x00F0,0x4444,0x0F00,0x2222},{0x0071,0x0226,0x0470,0x0322},{0x0074,0x0622,0x0170,0x0223},{0x0033,0x0033,0x0033,0x0033},{0x0072,0x0262,0x0270,0x0232},{0x0036,0x0462,0x0360,0x0231},{0x0063,0x0264,0x0630,0x0132}};
el14ja 3:af0a7a4464e5 13
el14ja 2:56dc50270349 14 Tetris::Tetris(){
el14ja 4:e4952be370d3 15
el14ja 4:e4952be370d3 16 }
el14ja 4:e4952be370d3 17
el14ja 4:e4952be370d3 18 void Tetris::gameSetup()
el14ja 4:e4952be370d3 19 {
el14ja 4:e4952be370d3 20
el14ja 4:e4952be370d3 21 //drawRect(int x0,int y0,int width,int height,int fill)
el14ja 4:e4952be370d3 22 screen.printString("Level:",0,0);
el14ja 4:e4952be370d3 23 screen.printString("Score:",0,2);
el14ja 4:e4952be370d3 24 screen.printString("0",0,1);
el14ja 4:e4952be370d3 25 screen.printString("Next",0,4);
el14ja 4:e4952be370d3 26
el14ja 4:e4952be370d3 27
el14ja 4:e4952be370d3 28 //creats the game boarder
el14ja 4:e4952be370d3 29 screen.drawRect(40,0,33,47,0);
el14ja 4:e4952be370d3 30 screen.drawRect(41,1,31,46,0);
el14ja 4:e4952be370d3 31 screen.refresh();
el14ja 4:e4952be370d3 32
el14ja 4:e4952be370d3 33
el14ja 3:af0a7a4464e5 34 }
el14ja 3:af0a7a4464e5 35
el14ja 3:af0a7a4464e5 36 void Tetris::gameInfo(int score,int level,int next)
el14ja 3:af0a7a4464e5 37 {
el14ja 3:af0a7a4464e5 38 //outputs the level
el14ja 3:af0a7a4464e5 39 char buffer[6];
el14ja 3:af0a7a4464e5 40 int length = sprintf(buffer,"%d",level);
el14ja 3:af0a7a4464e5 41 if(length <=6) {
el14ja 3:af0a7a4464e5 42 screen.printString(" ",0,1);
el14ja 3:af0a7a4464e5 43 screen.printString(buffer,0,1);
el14ja 3:af0a7a4464e5 44 }
el14ja 3:af0a7a4464e5 45 //outputs the score
el14ja 3:af0a7a4464e5 46 length = sprintf(buffer,"%d",score);
el14ja 3:af0a7a4464e5 47 if(length <=6) {
el14ja 3:af0a7a4464e5 48 screen.printString(" ",0,3);
el14ja 3:af0a7a4464e5 49 screen.printString(buffer,0,3);
el14ja 3:af0a7a4464e5 50 }
el14ja 3:af0a7a4464e5 51
el14ja 3:af0a7a4464e5 52 for(int i = 0; i <4; i++) { //clears the next piece shape before the new one is displayed
el14ja 3:af0a7a4464e5 53 for(int j = 0; j <2; j++) {
el14ja 3:af0a7a4464e5 54 clearGamePixel(-6+i,12+j);
el14ja 3:af0a7a4464e5 55 }
el14ja 3:af0a7a4464e5 56 }
el14ja 3:af0a7a4464e5 57 piecePlace(-6,12,tetrominoe[next][0]) ;
el14ja 3:af0a7a4464e5 58 }
el14ja 3:af0a7a4464e5 59
el14ja 4:e4952be370d3 60 void Tetris::gamePixel(int x, int y)//***
el14ja 3:af0a7a4464e5 61 {
el14ja 3:af0a7a4464e5 62
el14ja 2:56dc50270349 63 screen.drawRect(42+(3*x),2+(3*y),2,2,1);
el14ja 2:56dc50270349 64 screen.refresh();
el14ja 4:e4952be370d3 65 }
el14ja 2:56dc50270349 66
el14ja 2:56dc50270349 67 void Tetris::clearGamePixel(int x, int y){
el14ja 2:56dc50270349 68 for(int i =0; i<3; i++) {
el14ja 2:56dc50270349 69 for(int j =0; j<3; j++) {
el14ja 2:56dc50270349 70 screen.clearPixel(42+(x*3)+i,2+(3*y)+j);
el14ja 2:56dc50270349 71
el14ja 2:56dc50270349 72 }
el14ja 2:56dc50270349 73 }
el14ja 2:56dc50270349 74 screen.refresh();
el14ja 2:56dc50270349 75 }
el14ja 2:56dc50270349 76
el14ja 2:56dc50270349 77 void Tetris::clearGame(){
el14ja 2:56dc50270349 78 for(int i = 0; i<30; i++) {
el14ja 2:56dc50270349 79
el14ja 2:56dc50270349 80 for(int j = 0; j<45; j++) {
el14ja 2:56dc50270349 81
el14ja 2:56dc50270349 82 screen.clearPixel(42+i,2+j);
el14ja 2:56dc50270349 83 }
el14ja 2:56dc50270349 84 }
el14ja 2:56dc50270349 85 screen.refresh();
el14ja 2:56dc50270349 86 }
el14ja 2:56dc50270349 87
el14ja 2:56dc50270349 88 void Tetris::piecePlace(int x,int y,int shape)
el14ja 2:56dc50270349 89 {
el14ja 2:56dc50270349 90
el14ja 2:56dc50270349 91
el14ja 2:56dc50270349 92 int count = 0;
el14ja 2:56dc50270349 93 for(int i = 0; i<4; i++) {
el14ja 2:56dc50270349 94 for(int j = 0; j<4; j++) {
el14ja 2:56dc50270349 95
el14ja 2:56dc50270349 96 int bit = shape & (1<<count);
el14ja 2:56dc50270349 97
el14ja 2:56dc50270349 98 if (bit) {
el14ja 2:56dc50270349 99 gamePixel(j+x,i+y);
el14ja 2:56dc50270349 100 }
el14ja 2:56dc50270349 101 count++;
el14ja 2:56dc50270349 102 }
el14ja 2:56dc50270349 103 }
el14ja 2:56dc50270349 104 }
el14ja 2:56dc50270349 105
el14ja 2:56dc50270349 106 void Tetris::pieceClear(int x,int y,int shape)
el14ja 2:56dc50270349 107 {
el14ja 2:56dc50270349 108 int count = 0;
el14ja 2:56dc50270349 109 for(int i = 0; i<4; i++) {
el14ja 2:56dc50270349 110 for(int j = 0; j<4; j++) {
el14ja 2:56dc50270349 111
el14ja 2:56dc50270349 112 int bit = shape & (1<<count);
el14ja 2:56dc50270349 113
el14ja 2:56dc50270349 114 if (bit) {
el14ja 2:56dc50270349 115 clearGamePixel(j+x,i+y);
el14ja 2:56dc50270349 116 }
el14ja 2:56dc50270349 117 count++;
el14ja 2:56dc50270349 118 }
el14ja 2:56dc50270349 119 }
el14ja 2:56dc50270349 120 }
el14ja 3:af0a7a4464e5 121