rustream/squire/
ascii_art.rs

1use rand::prelude::SliceRandom;
2
3/// Prints random ASCII art of a horse, dog or a dolphin.
4///
5/// ## References
6/// - [asciiart.eu](https://www.asciiart.eu)
7/// - [asciiart.cc](https://asciiart.cc)
8pub fn random() {
9    let horse = r"
10                                                 #    #
11                                            %%% ##   ##
12                                         %%%%% ###%%###
13                                        %%%%% ### %%% #
14                                      %%%%%% ### %%% ###
15                                       %%%% ## %% #######
16                                      %%%%% # %% #O#####
17                                    %%%%%% # % #########
18                                   %%%%% ##### #########
19                         ###        %% ####### #########
20                %%% ############    ########### ########
21             %%%% ############################### #######
22           %%%%% ################################## ######
23         %%%%%% #################################### #C###
24        %%%%%% #####################################  ###
25        %%%%% #######################################
26       %%%%%% ########################################
27    % %%%%%%% ########################################
28     %%%%%%%%% #######################################
29    %%%%%%%%%% ########################################
30 %%% %%%%%%%%   ###### ################################
31   %%%%%%%%      ###### #################### ##########
32% %%%%%%%%        ####### ########### ###### ##########
33 %%%%%%%%%         #######  ########### ###### ########
34%%%%%%%%%%          ##### ###  ######### ####### ######
35 %%%%%%%%%%          #### ##               ####### ####
36 %%%%%%%%%%%           ## #                  ##### ###
37  %%  %% % %%         # ##                      ## ###
38    %   %    %        # ###                      # ###
39                       # ###                     ## ###
40                       # ###                     ## ###
41                       # ####                   #### ##
42                      ### ###                  ##### ###
43                     ####  ###                 ####   ##
44                    #####   ###                 ##    ##
45                   #####    ####                      ###
46                    ##        ###                     ###
47                               ####                     ##
48                                ####                    ###
49                                                        ####
50                                                         ##
51";
52
53    let dog = r###"
54           __.
55        .-".'                      .--.            _..._
56      .' .'                     .'    \       .-""  __ ""-.
57     /  /                     .'       : --..:__.-""  ""-. \
58    :  :                     /         ;.d$$    sbp_.-""-:_:
59    ;  :                    : ._       :P .-.   ,"TP
60    :   \                    \  T--...-; : d$b  :d$b
61     \   `.                   \  `..'    ; $ $  ;$ $
62      `.   "-.                 ).        : T$P  :T$P
63        \..---^..             /           `-'    `._`._
64       .'        "-.       .-"                     T$$$b
65      /             "-._.-"               ._        '^' ;
66     :                                    \.`.         /
67     ;                                -.   \`."-._.-'-'
68    :                                 .'\   \ \ \ \
69    ;  ;                             /:  \   \ \ . ;
70   :   :                            ,  ;  `.  `.;  :
71   ;    \        ;                     ;    "-._:  ;
72  :      `.      :                     :         \/
73  ;       /"-.    ;                    :
74 :       /    "-. :                  : ;
75 :     .'        T-;                 ; ;
76 ;    :          ; ;                /  :
77 ;    ;          : :              .'    ;
78:    :            ;:         _..-"\     :
79:     \           : ;       /      \     ;
80;    . '.         '-;      /        ;    :
81;  \  ; :           :     :         :    '-.
82'.._L.:-'           :     ;          ;    . `.
83                     ;    :          :  \  ; :
84                     :    '-..       '.._L.:-'
85                      ;     , `.
86                      :   \  ; :
87                      '..__L.:-'
88"###;
89
90    let dolphin = r###"
91                                               _______
92                                         .,add88YYYYY88ba,
93                                    .,adPP""'         `"Yba___,aaadYPPba,
94                                .,adP""                .adP""""'     .,Y8b
95                             ,adP"'                __  d"'     .,ad8P""Y8I
96                          ,adP"'                  d88b I  .,adP""'   ,d8I'
97                        ,adP"                     Y8P" ,adP"'    .,adP"'
98                       adP"                        "' dP"     ,adP""'
99                    ,adP"                             P    ,adP"'
100            .,,aaaad8P"                                 ,adP"
101       ,add88PP""""'                                  ,dP"
102    ,adP""'                                         ,dP"
103  ,8P"'                                            d8"
104,dP'                                              dP'
105`"Yba                                             Y8
106  `"Yba                                           `8,
107    `"Yba,                                         8I
108       `"8b                                        8I
109         dP                              __       ,8I
110        ,8'                            ,d88b,    ,d8'
111        dP                           ,dP'  `Yb, ,d8'
112       ,8'                         ,dP"      `"Y8P'
113       dP                        ,8P"
114      ,8'                      ,dP"
115      dP                     ,dP"
116     ,8'                    ,8P'
117     I8                    dP"
118     IP                   dP'
119     dI                  dP'
120    ,8'                 dP'
121    dI                 dP'
122    8'                ,8'
123    8                ,8I
124    8                dP'
125    8               ,8'
126    8,              IP'
127    Ib             ,dI
128    `8             I8'
129     8,            8I
130     Yb            I8
131     `8,           I8
132      Yb           I8
133      `Y,          I8
134       Ib          I8,
135       `Ib         `8I
136        `8,         Yb
137         I8,        `8,
138         `Yb,        `8a
139          `Yb         `Yb,
140           I8          `Yb,
141           dP            `Yb,
142          ,8'              `Yb,
143          dP                 `Yb,
144         d88baaaad88ba,        `8,
145            `"""'   `Y8ba,     ,dI
146                       `""Y8baadP'
147                            `""'
148"###;
149
150    println!("{}", [dog, dolphin, horse].choose(&mut rand::thread_rng()).unwrap())
151}