Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

class Block This class represents a two - dimensional tetris piece dropping into the tetris well. Figure 1 depicts some examples of pieces. The block

class Block
This class represents a two-dimensional tetris piece dropping into the tetris well. Figure 1 depicts some examples of
pieces. The block is practically a square-size placeholder for the Tile objects. But not all the spots are necessarily
occupied. When the block is generated, we randomly pick the spots that will be filled in with tiles. All the tiles of a block
must have the same color. Lastly, the block is dynamic which means that while its dropping into the well it can transform
in the following ways:
It can move left or right (one spot at a time)
It can flip vertically or horizontally
It can rotate clockwise (90 degrees at a time)
It can scale up (double in size) or scale down (shrink in half, but cant become smaller than 2x2). public class Block{
private DynamicArray> block; // the internal storage of the block data
public Block(int y, int x, int size)// this contructor creates a 2D placeholder of null values; these values will be populated later with calls to setTile()-- O(block_size)
public Block(int y, int x, int size, byte color)// overloaded constuctor that creates a 2D matrix with actual tile objects; no need to call setTile afterwards -- O(block_size)
public int getSize()// returns the length of the side of block -- O(1)
public int getY()// returns the top-left Y-coordinate of the block -- O(1)
public int getX()// returns the top-left X-coordinate of the block -- O(1)
public void setTile(int y, int x, Tile t)// sets the tile at location y,x -- O(1)
public Tile getTile(int y, int x)// gets the tile from location y,x -- O(1)
public void drop()// drops the block by one row -- O(block_size)
public void moveLeft()// moves the block one spot to the left -- O(block_size)
public void moveRight()// moves the block one spot to the right -- O(block_size)
public void rotate()// rotates the block 90 degrees clockwise -- O(block_size)
public void flipVertical()// flips the block vertically -- O(block_size)
public void flipHorizontal()// flips the block horizontally -- O(block_size)
public Block scaleUp()// scales up the block (double size)-- O(block_size)
public Block scaleDown()// scales down the block (half size)-- O(block_size)
}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions