4 added 26 characters in body
source | link

Ruby, 366 bytes

->s{s.tr!('^0-9A-Za-z','');b=([s]*s.size).map(&:chars);%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b  "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?b[i/7].rotate![-1]:' '};t}}

Try it online!

This can be golfed a lot, but now I've run out of time and ideas. It was harder than I first thought just to get it working.

How it works:

It's not so hard to understand, I'll just explain how the alphabet is coded with an example. Every line of every character is converted to binary and then to base-36.

 AAA   -> 01110 -> E
A   A  -> 10001 -> H
AAAAA  -> 11111 -> V
A   A  -> 10001 -> H
A   A  -> 10001 -> H

The first step is stripping all non-alphanumeric characters from the input string.

Then I generate a lookup table for the final rendering, because I want to print line for line.

After that, iterating on the alphabet line, I create the binary pattern of the letters.

Finally I replace 0 with spaces and 1 with characters from the lookup table.

Feel free to golf further, I know this could be 20-30 bytes shorter (using gsub instead of tr, and so on), but I'm not interested now, unless I can make the alphabet table drastically smaller.

Ruby, 366 bytes

->s{s.tr!('^0-9A-Za-z','');b=([s]*s.size).map(&:chars);%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b  "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?b[i/7].rotate![-1]:' '};t}}

Try it online!

This can be golfed a lot, but now I've run out of time and ideas. It was harder than I first thought just to get it working.

Ruby, 366 bytes

->s{s.tr!('^0-9A-Za-z','');b=([s]*s.size).map(&:chars);%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b  "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?b[i/7].rotate![-1]:' '};t}}

Try it online!

This can be golfed a lot, but now I've run out of time and ideas. It was harder than I first thought just to get it working.

How it works:

It's not so hard to understand, I'll just explain how the alphabet is coded with an example. Every line of every character is converted to binary and then to base-36.

 AAA   -> 01110 -> E
A   A  -> 10001 -> H
AAAAA  -> 11111 -> V
A   A  -> 10001 -> H
A   A  -> 10001 -> H

The first step is stripping all non-alphanumeric characters from the input string.

Then I generate a lookup table for the final rendering, because I want to print line for line.

After that, iterating on the alphabet line, I create the binary pattern of the letters.

Finally I replace 0 with spaces and 1 with characters from the lookup table.

Feel free to golf further, I know this could be 20-30 bytes shorter (using gsub instead of tr, and so on), but I'm not interested now, unless I can make the alphabet table drastically smaller.

    Post Undeleted by G B
3 added 26 characters in body
source | link

Ruby, 343366 bytes

->s{r=0;ss.tr!('^0-9A-Za-z','');b=([s]*s.size).map(&:chars);%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b  "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?s[(i-r)%sb[i/7].size]rotate![-1]:' '};r-=1;t;t}}

Try it online!Try it online!

Not there yetThis can be golfed a lot, but now I've run out of time and ideas. It was harder than I first thought just to get it working.

Ruby, 343 bytes

->s{r=0;s.tr!('^0-9A-Za-z','');%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?s[(i-r)%s.size]:' '};r-=1;t}}

Try it online!

Not there yet.

Ruby, 366 bytes

->s{s.tr!('^0-9A-Za-z','');b=([s]*s.size).map(&:chars);%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b  "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?b[i/7].rotate![-1]:' '};t}}

Try it online!

This can be golfed a lot, but now I've run out of time and ideas. It was harder than I first thought just to get it working.

    Post Deleted by G B
    Post Undeleted by G B
2 added 361 characters in body
source | link

Ruby, 136343 bytes - work in progress

Only prints '0' and '1'

->s{["ES","J4","L4","P4"r=0;s.tr!('^0-9A-Za-z',"EV"]'');%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|w+="%5b|c|c=~/\w/&&w+="%5b "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?s[i%ss[(i-r)%s.size]:' '};t;r-=1;t}}

Try it online!Try it online!

Not there yet.

Ruby, 136 bytes - work in progress

Only prints '0' and '1'

->s{["ES","J4","L4","P4","EV"].map{|x|w=t='';s.chars{|c|w+="%5b "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?s[i%s.size]:' '};t}}

Try it online!

Ruby, 343 bytes

->s{r=0;s.tr!('^0-9A-Za-z','');%w(esuu6vfveeeufuvvfhvvhghheucufvhhhhhv j411agg1hhhhghgggh44igrphhihg4hhhaa2 l4e7vuu2efvughssjv44sgllhumue4hal444 p4g121h4h1hhghgghh44ighjhgii14hara48 evvu2ue8euhufuvgfhvohvhhegdhu4e4hh4v).map{|x|w=t='';s.chars{|c|c=~/\w/&&w+="%5b "%x[c.to_i 36].to_i(36)};w.size.times{|i|t+=w[i]>?0?s[(i-r)%s.size]:' '};r-=1;t}}

Try it online!

Not there yet.

    Post Deleted by G B
1
source | link