mirror of https://github.com/01-edu/public.git
1 changed files with 93 additions and 0 deletions
@ -0,0 +1,93 @@
|
||||
## tetrisoptimizre |
||||
|
||||
### Objectives |
||||
|
||||
Develop a program that receives only one argument, a text file which will contain a list of [Tetrominoes](https://en.wikipedia.org/wiki/Tetromino) to assemble them in order to create the smallest square possible. |
||||
|
||||
### Instructions |
||||
|
||||
- Your program will be tested using our solution, you don't need to submit your text files |
||||
|
||||
The program must : |
||||
|
||||
- Expect at least 2 Tetrominoes in the text file |
||||
- Identify each Tetromino in the solution, by assigning different letters to different Tetrominoes |
||||
- Assemble all of the Tetrominoes in order to create the smallest square possible |
||||
- Print the solution where Tetrominoes are placed on their most upper left position, if there are more than one solution it |
||||
- In case of bad format on the Tetrominoes or bad file format it should print `ERROR` |
||||
|
||||
#### Example of a text File |
||||
|
||||
```console |
||||
#... |
||||
#... |
||||
#... |
||||
#... |
||||
|
||||
.... |
||||
.... |
||||
..## |
||||
..## |
||||
``` |
||||
|
||||
- If it isn't possible to form a complete square, the program should leave spaces between the Tetrominoes. For example: |
||||
|
||||
```console |
||||
ABB. |
||||
ABB. |
||||
A... |
||||
A... |
||||
``` |
||||
|
||||
## Usage |
||||
|
||||
``` |
||||
student@ubuntu:~/tetrisoptimizre$ cat -e sample.txt |
||||
...#$ |
||||
...#$ |
||||
...#$ |
||||
...#$ |
||||
$ |
||||
....$ |
||||
....$ |
||||
....$ |
||||
####$ |
||||
$ |
||||
.###$ |
||||
...#$ |
||||
....$ |
||||
....$ |
||||
$ |
||||
....$ |
||||
..##$ |
||||
.##.$ |
||||
....$ |
||||
$ |
||||
....$ |
||||
.##.$ |
||||
.##.$ |
||||
....$ |
||||
$ |
||||
....$ |
||||
....$ |
||||
##..$ |
||||
.##.$ |
||||
$ |
||||
##..$ |
||||
.#..$ |
||||
.#..$ |
||||
....$ |
||||
$ |
||||
....$ |
||||
###.$ |
||||
.#..$ |
||||
....$ |
||||
student@ubuntu:~/tetrisoptimizre$ ./tetrisoptimizre sample.txt | cat -e |
||||
ABBBB.$ |
||||
ACCCEE$ |
||||
AFFCEE$ |
||||
A.FFGG$ |
||||
HHHDDG$ |
||||
.HDD.G$ |
||||
student@ubuntu:~/tetrisoptimizre$ |
||||
``` |
Loading…
Reference in new issue