You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
5.6 KiB

## ascii-art-justify
### Objectives
You must follow the same [instructions](https://public.01-edu.org/subjects/ascii-art) as in the first subject but the alignment can be changed.
```console
We
will
explain!
```
To change the alignment of the output it must be possible to use a **flag** `--align=<type>`, in which `type` can be :
- center
- left
- right
- justify
- You must adapt your representation to the terminal size. If you reduce the terminal window the graphical representation should be adapted to the terminal size.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices).
- It is recommended that the code should present a **test file**.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
Assume the bars in the display below are the terminal borders:
```console
|$ go run . "hello" standard --align=center |
| _ _ _ |
| | | | | | | |
| | |__ ___ | | | | ___ |
| | _ \ / _ \ | | | | / _ \ |
| | | | | | __/ | | | | | (_) | |
| |_| |_| \___| |_| |_| \___/ |
| |
| |
|$ go run . "Hello There" standard --align=left |
| _ _ _ _ _______ _ |
|| | | | | | | | |__ __| | | |
|| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ |
|| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ |
|| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ |
||_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| |
| |
| |
|$ go run . "hello" shadow --align=right |
| |
| _| _| _| |
| _|_|_| _|_| _| _| _|_| |
| _| _| _|_|_|_| _| _| _| _| |
| _| _| _| _| _| _| _| |
| _| _| _|_|_| _| _| _|_| |
| |
| |
|$ go run . "how are you" shadow --align=justify |
| |
|_| |
|_|_|_| _|_| _| _| _| _|_|_| _| _|_| _|_| _| _| _|_| _| _| |
|_| _| _| _| _| _| _| _| _| _|_| _|_|_|_| _| _| _| _| _| _| |
|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| |
|_| _| _|_| _| _| _|_|_| _| _|_|_| _|_|_| _|_| _|_|_| |
| _| |
| _|_| |
|$ |
```
This project will help you learn about :
- The Go file system(**fs**) API
- Data manipulation
- Terminal display