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.

136 lines
4.2 KiB

## ascii-art
### Objectives
3 years ago
Ascii-art is a program which consists in receiving a `string` as an argument and outputting the `string` in a graphic representation using ASCII. Time to write big.
3 years ago
What we mean by a graphic representation using ASCII, is to write the `string` received using ASCII characters, as you can see in the example below:
```````````console
@@@@@@BB@@@@``^^``^^``@@BB$$@@BB$$
@@%%$$$$^^^^WW&&8888&&^^""BBBB@@@@
@@@@@@""WW8888&&WW888888WW``@@@@$$
BB$$``&&&&WWWW8888&&&&8888&&``@@@@
$$``&&WW88&&88&&&&8888&&88WW88``$$
@@""&&&&&&&&88888888&&&&&&88&&``$$
``````^^``^^^^^^````""^^``^^``^^``
""WW^^@@@@^^``````^^BB@@^^``^^&&``
^^&&^^@@````^^``&&``@@````^^^^&&``
``WW&&^^""``^^WW&&&&""``^^^^&&88``
^^8888&&&&&&WW88&&88WW&&&&88&&WW``
@@``&&88888888WW&&WW88&&88WW88^^$$
@@""88&&&&&&&&888888&&``^^&&88``$$
@@@@^^&&&&&&""``^^^^^^8888&&^^@@@@
@@@@@@^^888888&&88&&&&MM88^^BB$$$$
@@@@@@BB````&&&&&&&&88""``BB@@BB$$
$$@@$$$$$$$$``````````@@$$@@$$$$$$
```````````
- This project should handle an input with numbers, letters, spaces, special characters and `\n`.
- Take a look at the ASCII manual.
### 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 present a **test file**.
3 years ago
- Some [**banner**](https://github.com/01-edu/public/blob/master/subjects/ascii-art) files (.txt files) with a specific graphical template representation using ASCII will be given. The files are formatted in a way that is not necessary to change them.
### Banner Format
- Each character has an height of 8 lines.
- Characters are separated by a new line `\n`.
- Here is an example of ' ', '!' and '"'(one dot represents one space) :
```console
......
......
......
......
......
......
......
......
._..
|.|.
|.|.
|.|.
|_|.
(_).
....
....
._._..
(.|.).
.V.V..
......
......
......
......
......
```
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
```console
$ go run . "hello"
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
$ go run . "HeLlO"
_ _ _ _ ____
| | | | | | | | / __ \
| |__| | ___ | | | | | | | |
| __ | / _ \ | | | | | | | |
| | | | | __/ | |____ | | | |__| |
|_| |_| \___| |______| |_| \____/
$ go run . "Hello There"
_ _ _ _ _______ _
| | | | | | | | |__ __| | |
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
$ go run . "1Hello 2There"
_ _ _ _ _______ _
_ | | | | | | | | ____ |__ __| | |
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
$ go run . "{Hello There}"
__ _ _ _ _ _______ _ __
/ / | | | | | | | | |__ __| | | \ \
| | | |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ | |
/ / | __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ \ \
\ \ | | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ / /
| | |_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| | |
\_\ /_/
$
```
This project will help you learn about :
- The Go file system(**fs**) API
- Data manipulation