mirror of https://github.com/01-edu/public.git
1 changed files with 0 additions and 109 deletions
@ -1,109 +0,0 @@ |
|||||||
## fiil it |
|
||||||
|
|
||||||
### Objectives |
|
||||||
|
|
||||||
Develop a program that receives only one parameter, a txt file which will contain a list of [**Tetrominos**](https://en.wikipedia.org/wiki/Tetromino) to assemble them in order to create the smallest square possible. |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
All files referring to the project, must be in the same folder. |
|
||||||
|
|
||||||
The program must: |
|
||||||
|
|
||||||
- Be written in **GO** |
|
||||||
- Be compiled to be runned |
|
||||||
- Assemble all of the **Tetrominos** in order to create the smallest square possible |
|
||||||
- Show an error if the input doesn't correspond to a classic **Tetromino** piece |
|
||||||
- Not allow the rotation of the **Tetrominos** |
|
||||||
- Organize the **Tetrominos** by their apparition order in the file |
|
||||||
- Identify each **Tetromino** in the solution, by assigning different charactes to different **Tetrominos** |
|
||||||
- Have at least 2 **Tetrominos** in the text file |
|
||||||
|
|
||||||
Some notes: |
|
||||||
|
|
||||||
#### Example of a text File: |
|
||||||
|
|
||||||
```console |
|
||||||
#... |
|
||||||
#... |
|
||||||
#... |
|
||||||
#... |
|
||||||
|
|
||||||
.... |
|
||||||
.... |
|
||||||
..## |
|
||||||
..## |
|
||||||
``` |
|
||||||
|
|
||||||
- If it isn't possible to form a perfect square, the program should leave spaces between the **Tetrominos**. For example: |
|
||||||
|
|
||||||
```console |
|
||||||
ABB. |
|
||||||
ABB. |
|
||||||
A... |
|
||||||
A... |
|
||||||
``` |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- Among all the possible candidates for the smallest square, we only accpet the ones where **Tetrominos** is placed on their most upper-left position. In the example below, the program would choose option a). |
|
||||||
|
|
||||||
```console |
|
||||||
a) ABB. b)A... c)A... |
|
||||||
ABB. ABB. A... ... |
|
||||||
A... ABB. ABB. |
|
||||||
A... A... ABB. |
|
||||||
``` |
|
||||||
|
|
||||||
## Usage |
|
||||||
|
|
||||||
``` |
|
||||||
student@ubuntu:~/fill-it$ cat -e sample.txt |
|
||||||
...#$ |
|
||||||
...#$ |
|
||||||
...#$ |
|
||||||
...#$ |
|
||||||
$ |
|
||||||
....$ |
|
||||||
....$ |
|
||||||
....$ |
|
||||||
####$ |
|
||||||
$ |
|
||||||
.###$ |
|
||||||
...#$ |
|
||||||
....$ |
|
||||||
....$ |
|
||||||
$ |
|
||||||
....$ |
|
||||||
..##$ |
|
||||||
.##.$ |
|
||||||
....$ |
|
||||||
$ |
|
||||||
....$ |
|
||||||
.##.$ |
|
||||||
.##.$ |
|
||||||
....$ |
|
||||||
$ |
|
||||||
....$ |
|
||||||
....$ |
|
||||||
##..$ |
|
||||||
.##.$ |
|
||||||
$ |
|
||||||
##..$ |
|
||||||
.#..$ |
|
||||||
.#..$ |
|
||||||
....$ |
|
||||||
$ |
|
||||||
....$ |
|
||||||
###.$ |
|
||||||
.#..$ |
|
||||||
....$ |
|
||||||
student@ubuntu:~/fill-it$ ./fillit sample.txt | cat -e |
|
||||||
ABBBB.$ |
|
||||||
ACCCEE$ |
|
||||||
AFFCEE$ |
|
||||||
A.FFGG$ |
|
||||||
HHHDDG$ |
|
||||||
.HDD.G$ |
|
||||||
student@ubuntu:~/fill-it$ |
|
||||||
``` |
|
Loading…
Reference in new issue