ELEC2645 (2018/19) / Mbed 2 deprecated el17ajf

Dependencies:   mbed

Fork of el17ajf by Angus Findlay

Committer:
el17ajf
Date:
Wed Mar 13 09:30:36 2019 +0000
Revision:
5:3efbdcb3efaf
Parent:
4:aa433f9865a6
Child:
6:a54df561f442
Immutable grid class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17ajf 4:aa433f9865a6 1 #include "Tetromino.h"
el17ajf 4:aa433f9865a6 2
el17ajf 5:3efbdcb3efaf 3 Tetromino GetTetriminoOfType(Type type) {
el17ajf 5:3efbdcb3efaf 4 switch (type) {
el17ajf 5:3efbdcb3efaf 5 case T:
el17ajf 5:3efbdcb3efaf 6 return getTetrominoFromString(
el17ajf 5:3efbdcb3efaf 7 "* "
el17ajf 5:3efbdcb3efaf 8 "**"
el17ajf 5:3efbdcb3efaf 9 "* "
el17ajf 5:3efbdcb3efaf 10 " ");
el17ajf 5:3efbdcb3efaf 11 break;
el17ajf 5:3efbdcb3efaf 12 case L:
el17ajf 5:3efbdcb3efaf 13 return getTetrominoFromString(
el17ajf 5:3efbdcb3efaf 14 "* "
el17ajf 5:3efbdcb3efaf 15 "* "
el17ajf 5:3efbdcb3efaf 16 "* "
el17ajf 5:3efbdcb3efaf 17 "* ");
el17ajf 5:3efbdcb3efaf 18 break;
el17ajf 5:3efbdcb3efaf 19 }
el17ajf 5:3efbdcb3efaf 20 }
el17ajf 5:3efbdcb3efaf 21
el17ajf 5:3efbdcb3efaf 22 Tetromino getTetrominoFromString(const char * str_blocks) {
el17ajf 5:3efbdcb3efaf 23 int top = 0;
el17ajf 5:3efbdcb3efaf 24 blocks = new Block[4];
el17ajf 5:3efbdcb3efaf 25 for (int i = 0; i < 8; i++) {
el17ajf 5:3efbdcb3efaf 26 if (*(blocks + i) == '*') {
el17ajf 5:3efbdcb3efaf 27 blocks[top++] = Block(i % 2, i / 2);
el17ajf 5:3efbdcb3efaf 28 }
el17ajf 5:3efbdcb3efaf 29 }
el17ajf 5:3efbdcb3efaf 30 return Tetromino(blocks[0], blocks[1], blocks[2], blocks[3]);
el17ajf 4:aa433f9865a6 31 }
el17ajf 4:aa433f9865a6 32
el17ajf 4:aa433f9865a6 33 Tetromino::Tetromino(Block a, Block b, Block c, Block d) {
el17ajf 4:aa433f9865a6 34 blocks = new Block[4];
el17ajf 4:aa433f9865a6 35 blocks[0] = a;
el17ajf 4:aa433f9865a6 36 blocks[1] = b;
el17ajf 4:aa433f9865a6 37 blocks[2] = c;
el17ajf 4:aa433f9865a6 38 blocks[3] = d;
el17ajf 4:aa433f9865a6 39 }
el17ajf 4:aa433f9865a6 40
el17ajf 4:aa433f9865a6 41 Tetromino::Tetromino translated(int dx, int dy) {
el17ajf 4:aa433f9865a6 42 return Tetromino(
el17ajf 4:aa433f9865a6 43 blocks[0].translated(dx, dy),
el17ajf 4:aa433f9865a6 44 blocks[1].translated(dx, dy),
el17ajf 4:aa433f9865a6 45 blocks[2].translated(dx, dy),
el17ajf 4:aa433f9865a6 46 blocks[3].translated(dx, dy)
el17ajf 4:aa433f9865a6 47 );
el17ajf 4:aa433f9865a6 48 }
el17ajf 4:aa433f9865a6 49
el17ajf 4:aa433f9865a6 50 Tetromino::Tetromino movedLeft() {
el17ajf 4:aa433f9865a6 51 return translated(-1, 0);
el17ajf 4:aa433f9865a6 52 }
el17ajf 4:aa433f9865a6 53
el17ajf 4:aa433f9865a6 54 Tetromino::Tetromino movedRight() {
el17ajf 4:aa433f9865a6 55 return translated(1, 0);
el17ajf 4:aa433f9865a6 56 }