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}