Similarly you may design how the results are reported we


Mattetris

Problem Statement: Tetris has been a popular video game for decades. We will be implementing a simplified version which the computer simulates rather than having a human control. Considering the implementation is in Matlab, the name will be Mattetris.

The idea of Mattetris is that rectangular blocks will be fitted together into as tight an area as possible.  Input will be the dimensions of the blocks.  For each game, the player will indicate one of three possible sources for the dimensions: 1) interactive human input into a n x 2 matrix, 2) randomly generated by the computer, or 3) input data file to be loaded.  Rules of play are as follows:

1) Make the screen 80 characters wide and as high as needed to display all the rectangles. 

2) Rectangles are placed in the order provided in the input.

3) Rectangles may be placed oriented as given (preferred), or rotated 90 degrees clockwise. 

4) Each rectangle should be placed with its top line as high on the display as possible. 

5) Within that highest line, each rectangle should be placed as far to the left as possible. 

6) After it is placed, a rectangle will not be moved.

Rules for the display of a rectangle are as follows:

1) The characters forming the rectangle are numbered sequentially row by row, column by column, (e.g. as a Matlab matrix on input of 4 3 it would be [1 2 3; 4 5 6; 7 8 9; 10 11 12]).

2) Only the 1's digits are displayed, (e.g. for the above as [1 2 3; 4 5 6; 7 8 9; 0 1 2]).

3) If the rectangle is rotated clockwise 90 degrees, the display should likewise be rotated, (e.g. for the above as [0 7 4 1; 1 8 5 2; 2 9 6 3]).

4) Only the edge of the rectangle is displayed, (e.g. for the above do not display the 5 and 8).  Interior positions show as spaces.

Problem input: You may choose to accept input from the keyboard, either prompting for each rectangle, or prompting for an entire list of rectangles.  Alternatively you may choose to accept input from a data file.  Finally you may choose to specify some number of rectangles to be generated by the built-in random number generator.  Perhaps you can think of other ways to get the data into the program.  In general, each rectangle should be entered as height width pairs (e.g. 6 9 for six rows high and nine columns wide).  If you upgrade this project to become project 4, you might use a GUI approach to data entry.

Problem output: Similarly, you may design how the results are reported.  We should at a minimum see the final arrangement of rectangles being displayed.  If you upgrade this project to become project 4, you might use animation and a figure to show the rectangles.  Again, discuss your choices in the report.

Problem options: You are welcome to propose variations, such as implementing smarter algorithms for rectangle placement, allowing more complicated shapes, etc.  Yes, discuss your choices in the report.

Collaboration: Work together as a team on any or all aspects of the research and design.  Ideally take advantage of the talents of each member of the team.  Use your teams to finalize each of the multiple design options.  It is essential to keep track of who did what and where any useful information was found.  You need to keep track when you help someone and when you receive help from someone.  This includes students from other teams and those outside the class, TAs and me (the instructor). Keeping a log is highly recommended.

Request for Solution File

Ask an Expert for Answer!!
Dissertation: Similarly you may design how the results are reported we
Reference No:- TGS02367044

Expected delivery within 24 Hours