Пример #1
0
void test_grid_set_cells_with_piece()
{
    // Create a grid.
    int numberOfRows = 10;
    int numberOfColumns = 10;
    TrnGrid* grid = trn_grid_new(numberOfRows, numberOfColumns);

    // Create a piece;
    TrnPiece piece = trn_piece_create(TRN_TETROMINO_I,2,3,TRN_ANGLE_90);
    
    trn_grid_set_cells_with_piece(grid, &piece, piece.type);

    // Create expected grid
    TrnGrid* expected_grid = trn_grid_new(numberOfRows, 
                                          numberOfColumns);
    TrnPositionInGrid pos = {2,5};
    trn_grid_set_cell(expected_grid, pos, TRN_TETROMINO_I);
    pos.rowIndex = 3;
    pos.columnIndex = 5;
    trn_grid_set_cell(expected_grid, pos, TRN_TETROMINO_I);
    pos.rowIndex = 4;
    pos.columnIndex = 5;
    trn_grid_set_cell(expected_grid, pos, TRN_TETROMINO_I);
    pos.rowIndex = 5;
    pos.columnIndex = 5;
    trn_grid_set_cell(expected_grid, pos, TRN_TETROMINO_I);
    
	// Compare grids
	CU_ASSERT_TRUE(trn_grid_equal(grid, expected_grid));
}
Пример #2
0
void test_grid_set_cells_with_piece()
{
    // Create a grid.
    int numberOfRows = 10;
    int numberOfColumns = 10;
    TrnGrid* grid = trn_grid_new(numberOfRows, numberOfColumns);

    // Create a piece;
    TrnPiece piece = trn_piece_create(TRN_TETROMINO_I,2,3,TRN_ANGLE_90);

    trn_grid_set_cells_with_piece(grid, &piece, piece.type);

    // The piece position in grid.
    TrnPositionInGrid pos0 = {2,5};
    TrnPositionInGrid pos1 = {3,5};
    TrnPositionInGrid pos2 = {4,5};
    TrnPositionInGrid pos3 = {5,5};
    TrnPositionInGrid pos;

    TrnTetrominoType type;
    TrnTetrominoType expectedType;

    int rowIndex;
    int columnIndex;
    for (rowIndex = 0 ; rowIndex < grid->numberOfRows; rowIndex++) {
        for (columnIndex = 0 ; columnIndex < grid->numberOfColumns ; columnIndex++) {
            pos.rowIndex = rowIndex;
            pos.columnIndex = columnIndex;
            if (trn_position_in_grid_equal(pos, pos0) ||
                trn_position_in_grid_equal(pos, pos1) ||
                trn_position_in_grid_equal(pos, pos2) ||
                trn_position_in_grid_equal(pos, pos3))
            {
                expectedType = TRN_TETROMINO_I;
            } else {
                expectedType = TRN_TETROMINO_VOID;
            }
            type = trn_grid_get_cell(grid,pos);
            CU_ASSERT_EQUAL(type,expectedType);
        }
    }
}
Пример #3
0
void trn_grid_fill_piece(TrnGrid * const grid,
                         TrnPiece const * const piece)
{
  trn_grid_set_cells_with_piece(grid, piece, piece->type);
}
Пример #4
0
void trn_grid_remove_piece(TrnGrid * const grid,
                           TrnPiece const * const piece)
{
  trn_grid_set_cells_with_piece(grid, piece, TRN_TETROMINO_VOID);
}