Additional tetris | Computer Science homework help

In this week, you will refactor (improve) the code for your Tetris program. Be sure to incorporate the feedback you received.

Save your assignment as a .cpp file. Place this .cpp file in a single zipped folder.


I like the way that you’ve chosen different tetrimino representations for the blocks – it breaks up the visual appearance of the game and makes it much more playable. I found a glitch in the code that you might be able to fix for the refactoring portion of module 11 – if you rotate a block at the exact moment that it touches down, the tetrimino disappears. This occurs when there is no way to rotate the block, so there has to be an error in the code that causes the block to be removed from the array when the contact point is encountered. I’m including the two portions of code that might be the problem:

void Square::tetrisDisplay(Bucket &bucket, bool erase) {

    char symbol;
    if (erase == true)
        symbol=” “;
    else symbol = graphic;

    bucket.setBucket(rowPosition, columnPosition, symbol);
    gotoXY(rowPosition, columnPosition);
    cout << symbol;

    bucket.setBucket(rowPosition, columnPosition + 1, symbol);
    gotoXY(rowPosition, columnPosition + 1);
    cout << symbol;

    bucket.setBucket(rowPosition – 1, columnPosition, symbol);
    gotoXY(rowPosition – 1, columnPosition);
    cout << symbol;

    bucket.setBucket(rowPosition – 1, columnPosition + 1, symbol);
    gotoXY(rowPosition – 1, columnPosition + 1);
    cout << symbol;

    gotoXY(0, 0); //moves cursor to corner of screen


and also this section:

bool Square::testForStop(Bucket bucket, int horizChange) {

    if (bucket.getBucket(rowPosition + 1, columnPosition + horizChange) != ‘ ‘ ||
        bucket.getBucket(rowPosition + 1, columnPosition + 1 + horizChange) != ‘ ‘)
        return true;
    else return false;