I already have a basic application called newtetris. Before networking, I need you to add the ability to rotate the shapes. I don't care if you will have to edit my code and/or classes.
Requirement for rotate:
Rotate: To rotate a duplicate tetrimino, use the right mouse button to click one of the four corresponding circles. Please note the tetrimino will rotate about the center of the circle that is clicked. Again the original tetrimino can't be rotated.
Once you finish that, extend the NewTetris application to be a two-user network application that allows two users on two different machines to play the NewTetris game together. Both users have their own application windows on their own machines. Whatever one user has performed an operation within his/her window will be immediately reflected on the window of the other user too. Therefore both windows will show exactly the same tetrimino collection.
The difficulty is how to handle the conflicting operations simultaneously performed by the two users. For example, what to do when two users want to drag the same tetrimino at the same time? For this project, you can assume that the users will make sure by themselves that no conflicting operations will be performed.