source: Tino Duong, 2003
- Description:
- Tetris is a popular game developed in 1985-86 by Alexey Pajitnov (Pazhitnov), Dmitry Pavlovsky. The game involves taking various types of blocks and piecing them together to make lines. Once a solid line has been made, the player gets a point and the line disappears. If the player is unable to make lines fast enough, the game board will eventually overfill and the player loses.
- In order to make lines, the blocks are able to be shifted left and right as well as rotated.
- Using the file easyCurses.java provided by Instructor Katrin Becker, your job is to implement an ASCII version of the game Tetris
- Requirements:
- The game will be as close as possible to the original version of Tetris. This means that you must mimic all 8 different types of shapes
- You must display a score for each line that is created
- When the player loses, you must print a message on the screen
- When the player wins, you must print a message on the screen
- Each shape must be able to shift left, right and able to rotate 0,90,180 and 270 degrees
- There should be heavy boundary checking to ensure the different blocks to not overlap each other or move out of the screen
- To mimic an automatic constant downward motion of the block, you must edit the easyCurses.java to get timed input.
Your game may look similar to the one shown below:

Additional Requirements:
- Edit the easyCurses.java to allow you to have a distinct color for each block type. Do so as to minimize screen flicker.
- Make various levels of difficulty.
- Allow the user to see the next block that will be played
Concepts:
- Object Oriented design
- Classes
- Algorithm
- 2D arrays
-