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.

92 lines
6.1 KiB

## ascii-art-justify
### Objectives
3 years ago
You must follow the same [instructions](../README.md) 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.
- Only text that fits the terminal size will be tested.
3 years ago
- The flag must have exactly the same format as above, any other formats must return the following usage message:
```console
Usage: go run . [OPTION] [STRING] [BANNER]
3 years ago
Example: go run . --align=right something standard
3 years ago
```
If there are other `ascii-art` optional projects implemented, the program should accept other correctly formatted `[OPTION]` and/or `[BANNER]`.
Additionally, the program must still be able to run with a single `[STRING]` argument.
### Instructions
- Your project must be written in **Go**.
3 years ago
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Usage
Assume the bars in the display below are the terminal borders:
```console
|$ go run . --align=center "hello" standard |
| _ _ _ |
| | | | | | | |
| | |__ ___ | | | | ___ |
| | _ \ / _ \ | | | | / _ \ |
| | | | | | __/ | | | | | (_) | |
| |_| |_| \___| |_| |_| \___/ |
| |
| |
|$ go run . --align=left "Hello There" standard |
| _ _ _ _ _______ _ |
|| | | | | | | | |__ __| | | |
|| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ |
|| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ |
|| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ |
||_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| |
| |
| |
|$ go run . --align=right "hello" shadow |
| |
| _| _| _| |
| _|_|_| _|_| _| _| _|_| |
| _| _| _|_|_|_| _| _| _| _| |
| _| _| _| _| _| _| _| |
| _| _| _|_|_| _| _| _|_| |
| |
| |
|$ go run . --align=justify "how are you" shadow |
| |
|_| |
|_|_|_| _|_| _| _| _| _|_|_| _| _|_| _|_| _| _| _|_| _| _| |
|_| _| _| _| _| _| _| _| _| _|_| _|_|_|_| _| _| _| _| _| _| |
|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| |
|_| _| _|_| _| _| _|_|_| _| _|_|_| _|_|_| _|_| _|_|_| |
| _| |
| _|_| |
|$ |
```
3 years ago
### Allowed packages
- Only the [standard Go](https://golang.org/pkg/) packages are allowed.
3 years ago
This project will help you learn about :
- The Go file system(**fs**) API
- Data manipulation
- Terminal display