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.
 
 
 
 

6.8 KiB

ascii-art

Objectives

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.

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:

@@@@@@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.

  • It is recommended to have test files for unit testing.

  • Some banner 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 a height of 8 lines.
  • Characters are separated by a new line \n.
  • Here is an example of ' ', '!' and '"'(one dot represents one space) :

......
......
......
......
......
......
......
......

._..
|.|.
|.|.
|.|.
|_|.
(_).
....
....

._._..
(.|.).
.V.V..
......
......
......
......
......

Usage

student$ go run . "" | cat -e
student$ go run . "\n" | cat -e
$
student$ go run . "Hello\n" | cat -e
 _    _          _   _          $
| |  | |        | | | |         $
| |__| |   ___  | | | |   ___   $
|  __  |  / _ \ | | | |  / _ \  $
| |  | | |  __/ | | | | | (_) | $
|_|  |_|  \___| |_| |_|  \___/  $
                                $
                                $
$
student$ go run . "hello" | cat -e
 _              _   _          $
| |            | | | |         $
| |__     ___  | | | |   ___   $
|  _ \   / _ \ | | | |  / _ \  $
| | | | |  __/ | | | | | (_) | $
|_| |_|  \___| |_| |_|  \___/  $
                               $
                               $
student$ go run . "HeLlO" | cat -e
 _    _          _        _    ____   $
| |  | |        | |      | |  / __ \  $
| |__| |   ___  | |      | | | |  | | $
|  __  |  / _ \ | |      | | | |  | | $
| |  | | |  __/ | |____  | | | |__| | $
|_|  |_|  \___| |______| |_|  \____/  $
                                      $
                                      $
student$ go run . "Hello There" | cat -e
 _    _           _    _                 _______   _                              $
| |  | |         | |  | |               |__   __| | |                             $
| |__| |   ___   | |  | |    ___           | |    | |__      ___    _ __     ___  $
|  __  |  / _ \  | |  | |   / _ \          | |    |  _ \    / _ \  | '__|   / _ \ $
| |  | | |  __/  | |  | |  | (_) |         | |    | | | |  |  __/  | |     |  __/ $
|_|  |_|  \___|  |_|  |_|   \___/          |_|    |_| |_|   \___|  |_|      \___| $
                                                                                  $
                                                                                  $
student$ go run . "1Hello 2There" | cat -e
     _    _           _    _                       _______   _                              $
 _  | |  | |         | |  | |               ____  |__   __| | |                             $
/ | | |__| |   ___   | |  | |    ___       |___ \    | |    | |__      ___    _ __     ___  $
| | |  __  |  / _ \  | |  | |   / _ \        __) |   | |    |  _ \    / _ \  | '__|   / _ \ $
| | | |  | | |  __/  | |  | |  | (_) |      / __/    | |    | | | |  |  __/  | |     |  __/ $
|_| |_|  |_|  \___|  |_|  |_|   \___/      |_____|   |_|    |_| |_|   \___|  |_|      \___| $
                                                                                            $
                                                                                            $
student$ go run . "{Hello There}" | cat -e
   __   _    _           _    _                 _______   _                              __    $
  / /  | |  | |         | |  | |               |__   __| | |                             \ \   $
 | |   | |__| |   ___   | |  | |    ___           | |    | |__      ___    _ __     ___   | |  $
/ /    |  __  |  / _ \  | |  | |   / _ \          | |    |  _ \    / _ \  | '__|   / _ \   \ \ $
\ \    | |  | | |  __/  | |  | |  | (_) |         | |    | | | |  |  __/  | |     |  __/   / / $
 | |   |_|  |_|  \___|  |_|  |_|   \___/          |_|    |_| |_|   \___|  |_|      \___|  | |  $
  \_\                                                                                    /_/   $
                                                                                               $
student$ go run . "Hello\nThere" | cat -e
 _    _           _    _           $
| |  | |         | |  | |          $
| |__| |   ___   | |  | |    ___   $
|  __  |  / _ \  | |  | |   / _ \  $
| |  | | |  __/  | |  | |  | (_) | $
|_|  |_|  \___|  |_|  |_|   \___/  $
                                   $
                                   $
 _______   _                              $
|__   __| | |                             $
   | |    | |__      ___    _ __     ___  $
   | |    |  _ \    / _ \  | '__|   / _ \ $
   | |    | | | |  |  __/  | |     |  __/ $
   |_|    |_| |_|   \___|  |_|      \___| $
                                          $
                                          $
student$ go run . "Hello\n\nThere" | cat -e
 _    _           _    _           $
| |  | |         | |  | |          $
| |__| |   ___   | |  | |    ___   $
|  __  |  / _ \  | |  | |   / _ \  $
| |  | | |  __/  | |  | |  | (_) | $
|_|  |_|  \___|  |_|  |_|   \___/  $
                                   $
                                   $
$
 _______   _                              $
|__   __| | |                             $
   | |    | |__      ___    _ __     ___  $
   | |    |  _ \    / _ \  | '__|   / _ \ $
   | |    | | | |  |  __/  | |     |  __/ $
   |_|    |_| |_|   \___|  |_|      \___| $
                                          $
                                          $
student$

Allowed packages

This project will help you learn about :

  • The Go file system(fs) API
  • Data manipulation