9
\$\begingroup\$

I'd like to see you create code (in any programming language) that output working BF (Brain***k) code. Your program have a single character input on stdin. The input should be one digit ("0", "1", "2", "3", "4", "5", "6", "7", "8" or "9").

Your code should output BF-code that when interpreted with a normal BF-interpreter outputs a 5*5 ascii version of the digit. The generated BF-code should not accept any input. The resulting output from the generated BF-code should be exactly this:

Input: '0'

Output BF-code that when interpreted generates the following output:

.---.
|  /|
| / |
|/  |
'---'

Input: '1'

Output BF-code that when interpreted generates the following output:

 .
/|
 |
 |
 '

Input: '2'

Output BF-code that when interpreted generates the following output:

.---.
    |
.---'
|
'---'

Input: '3'

Output BF-code that when interpreted generates the following output:

.---.
    |
 ---|
    |
'---'

Input: '4'

Output BF-code that when interpreted generates the following output:

.   .
|   |
'---|
    |
    '

Input: '5'

Output BF-code that when interpreted generates the following output:

.---
|   
'---.
    |
'---'

Input: '6'

Output BF-code that when interpreted generates the following output:

.---
|
|---.
|   |
'---'

Input: '7'

Output BF-code that when interpreted generates the following output:

----.
   /
  /
 /
'

Input: '8'

Output BF-code that when interpreted generates the following output:

.---.
|   |
|---|
|   |
'---'

Input: '9'

Output BF-code that when interpreted generates the following output:

.---.
|   |
'---|
    |
'---'

The output from your code must be 10 different BF sourcecodes, one for each digit you input. Your program should not output all 10 BF in one run, it must ask for a digit and output BF code for that and only that ascii representation.

The BF-code requirements:

  • cell size: 8bit unsigned.
  • Overflow is undefined.
  • Array size: Max 30000 bytes (not circled)
  • It can contain other characters than [],.+-<>, but they should all be ignored. It is only - the standard BF code without any extensions that counts.
  • The EOF return 0
  • Linefeed is chr(10)

The winning answer will be the one that scores that lowest code using this formula:

your code in number of bytes * 5 + sum of the 10 generated BF codes

So keep in mind that you need to generate GOLF'd BF-code to score better.

Edit/Add (2011-08-25): You may omit or supply trailing spaces, as long as the digits displays the ASCII representation on a 80 column output, so the limit is 80 chars rows. Honor to the answers to generates exactly 5*5 output for all digits.

\$\endgroup\$
5
  • \$\begingroup\$ @user unknown : Thanks for spotting that unneccesary irregularity, I have updated the shape and tried to make it as uniform to the other digits as possible \$\endgroup\$ – Plarsen Aug 11 '11 at 4:43
  • \$\begingroup\$ Am I correct that the trailing spaces in the 5 are unintentional and not necessary? My solution does not include them. \$\endgroup\$ – PleaseStand Aug 25 '11 at 0:36
  • \$\begingroup\$ @PleaseStand that is correct, you can omit or supply trailing spaces, as long as the digits displays the ASCII representation on a 80 column output, so the limit is 80 chars rows. I Will edit the question later today and include this info \$\endgroup\$ – Plarsen Aug 25 '11 at 5:13
  • \$\begingroup\$ And does the "EOF return 0" part mean I have to end my output with a null byte or does it mean , can substitute for [-]? \$\endgroup\$ – PleaseStand Aug 25 '11 at 18:33
  • \$\begingroup\$ well, the EOF part is about how the bf-interpreter reads the bf sourcecode, so I guess it is not really applicable. Your output from your code or the output from the bf-code does not need to end with 0. \$\endgroup\$ – Plarsen Aug 26 '11 at 15:55
5
\$\begingroup\$

JavaScript (JS 455 * 5 = 2275, BF = 3505, score = 5780)

The generated code builds a character table as it produces its ASCII art output to save thousands of plus/minus signs overall. Output is placed into the text box in a prompt window so that it can be copied and pasted into a BF interpreter. The consecutive spaces in this program must remain verbatim for it to work correctly; hopefully, posting the code here will work correctly. (Note: The JS code requires ES5 or JavaScript 1.6 support to work properly.)

M=prompt;S="3cb80kh77j31f4031m10g251p64d1064a20ionle3292032510".substr(5*M(A=[]),5).replace(/./g,function(a){return"'---'0    |0|   |0.---.0|0'---|0.---0 |0|/  |0|---|0|---.0| / |0|  /|0'---.0'0.---'0.   .0/|0----.0 '0 .0 /0 ---|0  /0   /0    '".split(i=j=0)[parseInt(a,26)]+"\n"});for(O="";i<S.length;O+=".")D=A.indexOf(C=S.charCodeAt(i)),i++&&(d=-j+(j=D<0?A.length:D),O+=Array(d>0?1+d:1-d).join(d>0?">":"<")),D<0&&(O+=Array((A[j]=C)+1).join("+"));M(0,O)
\$\endgroup\$
1
  • \$\begingroup\$ Nice one!, I tested it in Google chrome Javascript-console and it seems to work flawless \$\endgroup\$ – Plarsen Aug 25 '11 at 16:29
24
\$\begingroup\$

BrainFuck (Score : 13073, BF : 2299 2286, BF (generated) : 1643)

,>++++++++[<------>->>>+++++++++++>+++++++++++>+++++>++++++++>++++++++>++++++>++++++<<<<<<<<<]
>>>+++>+++++>+++>---->-->--->--<<<<........<<.>>>>>.<.<<.>>.<<....>>.<<......>>.<<......>>.<<.
..............>>.<<......>>.<<.....>.......<<.>>>.<<..>>..>..<.>...<.<<....>>.>.<.>.<<<<<<<<+<
[>-]>[>>>>>>....>>>.<<.>>...<<<.>>>.<<<..>>>.<<....>>.<<<...>>>..<<....>>.<<<.>>>.<<<....>>>.<
<....>>.<<<...>>>.<<....>>.<<<....>>>.<<...>>.<<<....>>>.<<....>>.<<.>>.<<<....>>>..<<...>>.<<
<....>>>.<<......>>.<<<...>>>...<<...>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>.....>>>
.<<.>>.<<<..>>>.<<.....>>.<<<.>>>.<<<....>>>.<<.>>.<<...>>.<<<....>>>.<<.>>.<<...>>.<<<....>>>
.<<.>>.<<.....>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>....>>>.<<.>>...<<<.>>>.<<<..>>
>.<<.>>....<<...>>.<<<....>>>.<<..>>.<<.>>...<<...>>.<<<......>>>.<<....>>.<<<....>>>.<<......
>>.<<<...>>>...<<...>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>....>>>.<<.>>...<<<.>>>.<
<<..>>>.<<.>>....<<...>>.<<<....>>>.<<.>>.<<..>>...<<.>>.<<<....>>>.<<.>>....<<...>>.<<<....>>
>.<<......>>.<<<...>>>...<<...>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>....>>>.<<<.>>>
...<<.>>.<<<..>>>.<<....>>.<<<...>>>...<<...>>.<<<....>>>.<<......>>.<<<...>>>...<<.>>.<<<....
>>>.<<.>>....<<...>>.<<<....>>>.<<.>>....<<.....>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>
>>>....>>>.<<.>>...<<<...>>>.<<....>>.<<<....>>>.<<......>>.<<<...>>>...<<<.>>>.<<<..>>>.<<.>>
....<<...>>.<<<....>>>.<<......>>.<<<...>>>...<<...>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[
>>>>>>....>>>.<<.>>...<<<...>>>.<<....>>.<<<....>>>.<<....>>.<<<.>>>...<<<.>>>.<<<..>>>.<<....
>>.<<<...>>>...<<...>>.<<<....>>>.<<......>>.<<<...>>>...<<...>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>
[-]<<[>-]>[>>>>>>...>>>....<<<.>>>.<<<..>>>.<<.>>...<<....>>.<<<.....>>>.<<.>>..<<....>>.<<<..
...>>>.<<.>>.<<....>>.<<<.....>>>.<<......>>.<<<<<<<<<->>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>...
.>>>.<<.>>...<<<.>>>.<<<..>>>.<<....>>.<<<...>>>...<<...>>.<<<....>>>.<<....>>.<<<.>>>...<<.>>
.<<<....>>>.<<....>>.<<<...>>>...<<...>>.<<<....>>>.<<......>>.<<<...>>>...<<...>>.<<<<<<<<<->
>+<]>-[+<<<->[-]+>[-]<<[>-]>[>>>>>>....>>>.<<.>>...<<<.>>>.<<<..>>>.<<....>>.<<<...>>>...<<...
>>.<<<....>>>.<<......>>.<<<...>>>...<<.>>.<<<....>>>.<<.>>....<<...>>.<<<....>>>.<<......>>.<
<<...>>>...<<...>>.>]]]]]]]]]]

(FYI : over 90% of above code is generated by JS code to generate part of BrainFuck code generating part of BrainFuck code generating ASCII art.)

This program gets one ASCII character ('0'~'9') and print the BF code generating the ASCII art.

Generated BF codes :

#0
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<.<<.>>>>.<<<..>>>>.<.<<<<.>>>>.<<<.>>>>.<<<<.>>>.<<<<.>>>>.>.<<<<..>>>.<<<<.>>>>>>.<<<...>>>.
#1
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<<.>.<<.>>>>>.<.<<<<.>.>>>.<<<<.>.>>>.<<<<.>.>>>>>.
#2
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<.<<.>....>>>.<<<<.>>.>...>>>.<<<<<<.>>>>.<<<<.>>>>>>.<<<...>>>.
#3
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<.<<.>....>>>.<<<<.>.>>...>.<<<<.>....>>>.<<<<.>>>>>>.<<<...>>>.
#4
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.<...>.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>.<<<<.>....>>>.<<<<.>....>>>>>.
#5
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<<<.>>>>.<<<<.>>>>>>.<<<...<.<<.>....>>>.<<<<.>>>>>>.<<<...>>>.
#6
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<<<.>>>>.<<<<.>>>>.<...<.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>>>.
#7
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<....<.<<.>...>>>>.<<<<<.>..>>>>.<<<<<.>.>>>>.<<<<<.>>>>>>.
#8
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<.<<.>>>>.<<<...>>>.<<<<.>>>>.<...>.<<<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>>>.
#9
++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<<.>...<.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>.<<<<.>....>>>.<<<<.>>>>>>.<<<...>>>.

Example output for 7 :

----.
   /
  /
 /
'
\$\endgroup\$
1
  • 1
    \$\begingroup\$ Very nice and intuitive aproach. To bad bf-code is hard on the bytecount. \$\endgroup\$ – Plarsen Sep 28 '11 at 5:16
4
\$\begingroup\$

brainfuck, (BF 1534 * 5 = 7670, Generated BF = 1293, score = 8963)

+[-[>+<<]>-]>-.>>--[<+>++++++]<.>++++++>-[<+>---]<.<++..<.>--.>.<<--.>>++.<<++.>++.>.<<..>--..
........<.>..<.>++..>--.<<--.>--.<++.>......>++.<++...<.>..>--.<<--.>--.<++.>++..>++.<<.>--...
.>--.<<--.>........<++.>++.>++.<<--...>--.<<<<,+++>-[<->-----]+<[>-]>[->>>+++.-.+...---.+++.<.
>.<++..>.<.>..<--..>---.+++.<++.>.<--..>.<++..>.<.>.<--..>.<++..>.<--.>.<..>.<++..>.<--.>.<++.
.>..<--.>.<..>.<.>.<++..>-..+...<--..>.<<]<+<-[>-]>[->>++..>+++.<--..>.<.>.<++.>---.+++.<.>.<-
-..>.<++...>.<--.>.<..>.<++...>.<--.>.<..>.<++...>.<--....>.<<]<+<-[>-]>[->>>+++.-.+...---.+++
.<.>.<++...>....<--.>.<..>.<++.>.-.+...<--..>.<++.>.<..>.<--..>.<.>.<++..>...<--..>.<<]<+<-[>-
]>[->>>+++.-.+...---.+++.<.>.<++...>....<--.>.<..>.<++...>.<--..>-.+...<++.>.<--..>.<++...>...
.<--.>.<..>.<.>.<++..>...<--..>.<<]<+<-[>-]>[->>>+++.<++..>...<--..>.<.>.<++..>.<.>...<--.>.<.
.>.<.>.<++..>-.+...<.>.<--..>.<++...>....<--.>.<..>.<++...>....<--....>.<<]<+<-[>-]>[->>>+++.-
.+...<.>.<++..>.<--..>.<.>.<++..>...---.+++.<--.>.<++...>....<--.>.<..>.<.>.<++..>-.+...<--..>
.<<]<+<-[>-]>[->>>+++.-.+...<.>.<++..>.<--..>.<++..>.<--.>...---.+++.<.>.<++..>.<.>...<--.>.<.
.>.<.>.<++..>-.+...<--..>.<<]<+<-[>-]>[->>>++.+....---.+++.<.>.<++...>...<--..>---.+++.<.>.<++
...>..<--..>.<.>.<++...>.<--..>.<.>.<.>.<<]<+<-[>-]>[->>>+++.-.+...---.+++.<.>.<++..>.<.>...<-
-.>.<..>.<++..>.<--.>-.+...<++.>.<--..>.<++..>.<.>...<--.>.<..>.<.>.<++..>...<--..>.<<]<+<-[>-
]>[>>>+++.-.+...---.+++.<.>.<++..>.<.>...<--.>.<..>.<.>.<++..>-.+...<.>.<--..>.<++...>....<--.
>.<..>.<.>.<++..>...<--..>.<<]

Code here includes newlines for readability.

Try it online!

\$\endgroup\$
1
  • 2
    \$\begingroup\$ If you implement the same algorithm in a different language, you could win this challenge. \$\endgroup\$ – Razetime Nov 3 '20 at 9:21
4
+50
\$\begingroup\$

Python 3, (Python 403 * 5 = 2015, BF = 1293, score = 3308)

def x(i,b=5):
 a,i='',int(i,36)
 while i:a+='<.>+-[]'[i%b];i//=b
 return a
print(x("7vphe27p2e4voq0o43gf5n8vsm4zd01qsofpvobsaq",7)+x("20lzrlf5b9k8qf1kctot9x3et4id5d m1z11k8bye0q57c8owb 1houe4amyy3wu36tk00qz2 8o5y0gy19cx8cjsnjazb08seuk 5ypddsh5laklx2qj6sb2lxpu8cd aqma6z756nnzjalhd4fy5 aqma6z757wy8nhuw7uobp 4lbo9eqzud1ykb67x5f chin248p22jlefn4j0ottq13q chin248our8z29faeze411sy6".split()[int(input())]))

Try it online!

\$\endgroup\$
1
  • \$\begingroup\$ -18 bytes by switching to Python 2 Try it online! \$\endgroup\$ – pxeger Nov 3 '20 at 17:38
1
\$\begingroup\$

GTB (GTB, 888 * 5 = 4440, BF = 1643, score = 6083)

Yes, this does run on your calculator!

~"++++++++[->+>++++>++++++>++++++>+++++++++++++++>++++++>+++++<<<<<<<]>++>>-->--->++++>->-<<<"→_`A@A=0~"<.>...<.<<.>>>>.<<<..>>>>.<.<<<<.>>>>.<<<.>>>>.<<<<.>>>.<<<<.>>>>.>.<<<<..>>>.<<<<.>>>>>>.<<<...>>>.@A=1~"<<.>.<<.>>>>>.<.<<<<.>.>>>.<<<<.>.>>>.<<<<.>.>>>>>.@A=2~"<.>...<.<<.>....>>>.<<<<.>>.>...>>>.<<<<<<.>>>>.<<<<.>>>>>>.<<<...>>>.@A=3~"<.>...<.<<.>....>>>.<<<<.>.>>...>.<<<<.>....>>>.<<<<.>>>>>>.<<<...>>>.@A=4~"<.<...>.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>.<<<<.>....>>>.<<<<.>....>>>>>.@A=5"<.>...<<<.>>>>.<<<<.>>>>>>.<<<...<.<<.>....>>>.<<<<.>>>>>>.<<<...>>>.@A=6~"<.>...<<<.>>>>.<<<<.>>>>.<...<.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>>>.@A=7~"....<.<<.>...>>>>.<<<<<.>..>>>>.<<<<<.>.>>>>.<<<<<.>>>>>>.@A=8~"<.>...<.<<.>>>>.<<<...>>>.<<<<.>>>>.<...>.<<<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>>>.@A=9~"<.>...<.<<.>>>>.<<<...>>>.<<<<.>>>>>>.<<<...>.<<<<.>....>>>.<<<<.>>>>>>.<<<...>>>.
\$\endgroup\$
2
  • \$\begingroup\$ Excellent work! :) \$\endgroup\$ – Plarsen Jan 8 '14 at 19:31
  • \$\begingroup\$ Thanks, I also updated the score (didn't see the language *5) \$\endgroup\$ – Timtech Jan 8 '14 at 21:34
1
\$\begingroup\$

Spoon (Spoon, 7430 * 5 = 37150, BF = 1643, score = 38793)

00101100101111111100100011000000000000000000010000010010010111111111110101111111111101011111010111111110101111111101011111101011111101101101101101101101101101100110100100101110101111101011101000000000000001000000001000000000001000000001101101101100101000101000101000101000101000101000101000101001101100101001001001001001000101001100101001101100101001001000101001101100101000101000101000101001001000101001101100101000101000101000101000101000101001001000101001101100101000101000101000101000101000101001001000101001101100101000101000101000101000101000101000101000101000101000101000101000101000101000101000101001001000101001101100101000101000101000101000101000101001001000101001101100101000101000101000101000101001000101000101000101000101000101000101000101001101100101001001001000101001101100101000101001001000101000101001000101000101001100101001000101000101000101001100101001101100101000101000101000101001001000101001000101001100101001000101001101101101101101101101110110010001000000110100010001001001001001001000101000101000101000101001001001000101001101100101001001000101000101000101001101101100101001001001000101001101101100101000101001001001000101001101100101000101000101000101001001000101001101101100101000101000101001001001000101000101001101100101000101000101000101001001000101001101101100101001001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101001001000101001101101100101000101000101001001001000101001101100101000101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101001001000101001101100101001001000101001101101100101000101000101000101001001001000101000101001101100101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101000101000101001001000101001101101100101000101000101001001001000101000101000101001101100101000101000101001001000101001101101101101101101101101100001001010110011010000001001011011011000010001000000011101000100000001101101100100010000001101000100010010010010010010001010001010001010001010001010010010010001010011011001010010010001010011011011001010001010010010010001010011011001010001010001010001010001010010010001010011011011001010010010010001010011011011001010001010001010001010010010010001010011011001010010010001010011011001010001010001010010010001010011011011001010001010001010001010010010010001010011011001010010010001010011011001010001010001010010010001010011011011001010001010001010001010010010010001010011011001010010010001010011011001010001010001010001010001010010010001010011011011011011011011011011000010010101100110100000010010110110110000100010000000111010001000000011011011001000100000011010001000100100100100100100010100010100010100010100100100100010100110110010100100100010100010100010100110110110010100100100100010100110110110010100010100100100100010100110110010100100100010100010100010100010100110110010100010100010100100100010100110110110010100010100010100010100100100100010100110110010100010100100100010100110110010100100100010100010100010100110110010100010100010100100100010100110110110010100010100010100010100010100010100100100100010100110110010100010100010100010100100100010100110110110010100010100010100010100100100100010100110110010100010100010100010100010100010100100100010100110110110010100010100010100100100100010100010100010100110110010100010100010100100100010100110110110110110110110110110000100101011001101000000100101101101100001000100000001110100010000000110110110010001000000110100010001001001001001001000101000101000101000101001001001000101001101100101001001000101000101000101001101101100101001001001000101001101101100101000101001001001000101001101100101001001000101000101000101000101001101100101000101000101001001000101001101101100101000101000101000101001001001000101001101100101001001000101001101100101000101001001000101000101000101001101100101001001000101001101101100101000101000101000101001001001000101001101100101001001000101000101000101000101001101100101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101000101000101001001000101001101101100101000101000101001001001000101000101000101001101100101000101000101001001000101001101101101101101101101101100001001010110011010000001001011011011000010001000000011101000100000001101101100100010000001101000100010010010010010010001010001010001010001010010010010001010011011011001010010010010001010001010001010011011001010010010001010011011011001010001010010010010001010011011001010001010001010001010010010001010011011011001010001010001010010010010001010001010001010011011001010001010001010010010001010011011011001010001010001010001010010010010001010011011001010001010001010001010001010001010010010001010011011011001010001010001010010010010001010001010001010011011001010010010001010011011011001010001010001010001010010010010001010011011001010010010001010001010001010001010011011001010001010001010010010001010011011011001010001010001010001010010010010001010011011001010010010001010001010001010001010011011001010001010001010001010001010010010001010011011011011011011011011011000010010101100110100000010010110110110000100010000000111010001000000011011011001000100000011010001000100100100100100100010100010100010100010100100100100010100110110010100100100010100010100010100110110110010100010100010100100100100010100110110010100010100010100010100100100010100110110110010100010100010100010100100100100010100110110010100010100010100010100010100010100100100010100110110110010100010100010100100100100010100010100010100110110110010100100100100010100110110110010100010100100100100010100110110010100100100010100010100010100010100110110010100010100010100100100010100110110110010100010100010100010100100100100010100110110010100010100010100010100010100010100100100010100110110110010100010100010100100100100010100010100010100110110010100010100010100100100010100110110110110110110110110110000100101011001101000000100101101101100001000100000001110100010000000110110110010001000000110100010001001001001001001000101000101000101000101001001001000101001101100101001001000101000101000101001101101100101000101000101001001001000101001101100101000101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101001001000101001101101100101001001001000101000101000101001101101100101001001001000101001101101100101000101001001001000101001101100101000101000101000101001001000101001101101100101000101000101001001001000101000101000101001101100101000101000101001001000101001101101100101000101000101000101001001001000101001101100101000101000101000101000101000101001001000101001101101100101000101000101001001001000101000101000101001101100101000101000101001001000101001101101101101101101101101100001001010110011010000001001011011011000010001000000101001000000101100010000100100101001010010000011001001000000000101101100100000001011000001010010000101100001000000101000000000001000000000110000000000110000100001011000101000000000110001100000011000100011001100110000000000000001001000000110000010001001100011010001101101011001100000000100001000000100000011000000001000000110010011011001100001000000010110100000000001010000000000000000000000010010100101000000001011000000001011010000100010100000001010001000000101001000100000000000000110010010000110000010000000001000000101000110010000010000000000000000101000001101101000000000001001000000011011010000011
\$\endgroup\$
1
\$\begingroup\$

Jelly, score = 5×160 + 1305 = 2105

ị“¢N=⁵ḌƤṢ§UḌ“uçCçṗ³;nƝ“nƁǽ)|⁸jɠ9Ṁ“¡h6ịḃ⁸ƊFdṚ⁻ŀȥ“¤aijṇḃṚĠ;“&⁻3Ṃb½Ḟ\Ẇ“ÑṭȤv.Ṡ\ð⁸“¿bSumƒ¬ẹṡḢ€“¡][ḶṠ.\Ä£ḣ⁼“nƁµ[ḷSLBḃ$ŀ’ṃ“.<>”“ṁƙµ²ƭ^%n5ḅEœçs_ĊṚç⁽ƁhFġ⁷Ƈɱ’ṃ“+><-][”¤;

Try it online!

The digit is to be put in a command-line argument.

Explanation

ị“...’ṃ“.<>”“...’ṃ“+><-][”¤;   Main monadic link
ị                              Index in
 “...’                          a list of 10 integers compressed in base 250
      ṃ                        Base decompression using characters
       “.<>”                    [base 3] 1->'.', 2->'<', 0->'>'
                           ;   Prepend
                          ¤    (
            “...’               an integer compressed in base 250
                 ṃ              base decompressed using characters
                  “+><-][”      [base 6] 1->'+', ..., 0->'['
                          ¤    )

Produced brainfuck programs

+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...>.<<<.<.<..<.>>.>.<.<.<.>.>.>.<.<<.>..>.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+<<<<<.>>>>>.<<<.<<<.>>.>.<<.>.>.<<.>.>.<<.>>>.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...>.<<<.<<....>.>.>>>.<...<.<.<.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...>.<<<.<<....>.>.<<.>>>>...<<<.>.<<....>.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<<<<<...>>>>>.<<<.<.<...>.>.>.>...<<<.>.<<....>.>.<<....>>>.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...<<.<.>.>.>...>.<<<.<<....>.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...<<.<.>.<.>>>...>.<<<.<.<...>.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+<....>.<<<.<<...<.>>>.<<..<.>>>.<<.<.>>>.>.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...>.<<<.<.<...>.>.<.>>>...<<<.>.<.<...>.>.>.>...<.
+++[>+++++<-]>[>+++>++>++++++++>+>+++>+++>+++<<<<<<<-]>++>++>++++>----->------>>+.<...>.<<<.<.<...>.>.>.>...<<<.>.<<....>.>.>.>...<.

Explanation of brainfuck programs

The common part adds the number 3, then multiplies by 5 to get 15, then multiplies by some constants and adds some constants to get all the characters used in the ASCII art. (I used a Python program to determine 15 as the optimal number.)

The differing parts simply walk around the characters and print them. The order of the characters was chosen to make the walk as short as possible.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.