The deadline for this lab is Wednesday 22 November 2006, 11:45:59 hours. Strictly no submissions will be accepted after the deadline.
Here are some examples showing the position (column number) of a square block, starting from an empty playing area. We use “.” (full-stop) to represent an empty square, and “O” (capital-O) to represent a block.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Column 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Column 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . O O O O . . . . . . O O
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Column 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . O O O O . . . . . . O O
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Column 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . O O . O O . . . . . O O . O O . . . . . . O O O O . . . . . . O O
O O . . . . . O O . O O . . . . . O O . O O . . . . O O . . O O . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O
And a new block is dropped at column 2:
O O . . . . . O O . O O . . . . . O O . O O . . . . O O . . O O . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . Column 2 O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O O O O O O O O O O O O O O O O O O O
Notice that the placement of the last block forms two completed rows, i.e. the bottom two rows are now full of blocks. Such completed rows are removed, and all the blocks above will drop accordingly. Blocks below completed rows are not affected in any way.
If there is only one completed row, then all blocks above will drop down by exactly one square. If there are two completed rows, then all blocks above will drop down by exactly two squares.
After removing the completed rows and dropping the affected blocks, the following is the new layout:
. . . . . . . . . . . . . . . . . . . . O O . . . . . O O . O O . . . . . O O . O O . . . . O O . . O O . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O .
If there are any rows removed, the movement causes the bonds between all blocks to be loosened, and all blocks hanging in mid-air will now fall due to gravity, producing the following:
. . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . O O . . O O . . . . O O . . O O . . . O O O . . O O . . . O O O . . O O . . . O O O O . O O . . . O O O O . O O . . O O O O O . O O . . O O O O O .
This might form further completed rows, which must all be removed, causing the blocks above to drop down.
In summary:
0 8 6 4 7 6 5 4 5 6 7 0 0 0 0 0 0 0 2
The above shows that the first square block is to be dropped at column 0; the second square block to be dropped at column 8, and so on. No error checking is required; you may assume that the column numbers always keep the entire square block within the playing area. You may also assume that we will not put too many square blocks such that they overflow from the top of the playing area.
We will test your program with other text files.
Follow the sample run exactly or you will lose marks for the test cases.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . Square at column 0, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . O O O O . . . . . . O O Square at column 8, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . O O O O O O . . . . O O O O Square at column 6, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . O O O O O O O O . . O O O O O O Square at column 4, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 7, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 6, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 5, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 4, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 5, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 6, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 7, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . . . O O . . . . . . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . . . . . . . O O . . . . . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . O O . . . . . . . . O O . O O . . . . O O . . O O . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 O O . . . . . O O . O O . . . . . O O . O O . . . . O O . . O O . . . . O O . . O O . . . O O . . . O O . . . O O . . . O O . . O O . . . . O O . . O O . . . . O O . . . O O . . . O O . . . O O . . . O O . . . . O O . . O O . . . . O O . . O O . . . . . O O . O O . . . . . O O . O O . . O O O O O O O O . . O O O O O O Square at column 0, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . . . . . O O . . . . O O . . O O . . . . O O . . O O . . . O O O . . O O . . . O O O . . O O . . . O O O O . O O . . . O O O O . O O . . O O O O O . O O . . O O O O O . Square at column 2, rows cleared: 2
0 3 6 1 4 7 2 5 8 0 2 4 6 8 0
Follow the sample run exactly or you will lose marks for the test cases.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . . Square at column 0, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . . . . . O O . O O . . . . . Square at column 3, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . O O . . O O . O O . O O . . Square at column 6, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . O O . O O . O O . . O O . O O . O O . . Square at column 1, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . . . . . O O . O O . . . . O O . O O . O O . . O O . O O . O O . . Square at column 4, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 7, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 2, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . . . . . O O . O O . . . . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 5, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 8, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O O O . O O . O O O O O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 0, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . . . . . . O O . . . . . . O O O O . O O . O O O O O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 2, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O O O . . . . . . O O O O . . . . O O O O . O O . O O O O O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 4, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O O O O O . . . . O O O O O O . . O O O O . O O . O O O O O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 6, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O O O O O O O . . O O O O O O O O O O O O . O O . O O O O O O . O O . O O . O O . O O . O O . . O O . O O . O O . O O . O O . O O . . O O . O O . O O . . Square at column 8, rows cleared: 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O . . . . . . . . . O . . . . . . . . O O O O O O O O O . O O O O O O O O O . Square at column 0, rows cleared: 4
Remember to submit your program using the submit squares.c command, and check your submission using the check command.
All the best!