# TI-BASIC, 397 bytes **Important:** If you want to test this out, download it from [here][1] and send that file to your calculator. Do *not* try to copy the code below into TI-Connect CE's program editor or SourceCoder 3 or something to build and send it to your calculator; in TI-Connect's case, it'll say it has an invalid token. SC3 uses the backslash as a comment delimiter (`//` starts a comment in SC3; `/\/`, though, will export as `//`) and so it won't export the arms and hat and such correctly, causing the program to both display the incorrect body parts and throw an ERROR:DOMAIN every now and then. Fun stuff! **Important #2:** I'm too lazy to fix the download at the moment, so when you transfer it to your calc, change the `7` on the third line from the bottom to `X+6`. The code below is fixed if you need to compare. Input Str9 seq(inString("1234",sub(Str9,I,1)),I,1,length(Ans→L1 " ___ _ ___ →Str1 "_===_..... /_\ (_*_)→Str2 ",._ →Str3 "•oO-→Str4 "<\/ →Str5 ">/\ →Str6 " : ] [> < →Str7 " : ¨ ¨___ →Str8 "Str1Str2Str3Str4Str5Str6Str7Str8→Str0 For(X,3,5 Output(X,2,"( ) End L1 Output(3,3,sub(Str4,Ans(3),1)+sub(Str3,Ans(2),1)+sub(Str4,Ans(4),1 Ans(5 Output(4-(Ans=2),1,sub(Str5,Ans,1 L1(6 Output(4-(Ans=2),7,sub(Str6,Ans,1 L1-1 For(X,1,2 Output(X+3,3,sub(expr(sub(Str0,X+6,1)),1+3Ans(X+6),3 Output(X,2,sub(expr(sub(Str0,X,1)),1+5Ans(1),5 End **Bonus:** I'm particularly fond of `12341214`. _===_ (O.-)/ <( : ) ( ) Some notes: - It can definitely be golfed more, no question about that. I'm nearly positive that I can combine a majority, if not all, of the outputting into a single For( loop. Also, I'm pretty sure that I can merge some strings together. - In Str4 (the eyes) I use the "plot dot" (`[2ND] → [0]CATALOG → [3]θ → scroll down, it's between ﹢ (small plus) and · (interpunct)`) as opposed to a period so that the eyes don't line up with the comma, because that looks weird as hell. - In Str8 (base) I had to use a diaeresis (¨) instead of double quotes because there's no way to escape characters in TI-BASIC, and double quotes are used to start/end strings. - In TI-BASIC, there's no need to close parentheses and brackets if they're followed by a colon, newline or → (used for var assignment), and double quotes (strings) can stay unclosed when followed by a newline or →. [1]: https://www.dropbox.com/s/exwuo6zm9xsn7q6/SNOWMAN.8xp?dl=0