Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: Golf: Seven segment display

by PrakashK (Pilgrim)
on Jan 23, 2012 at 20:30 UTC ( #949520=note: print w/ replies, xml ) Need Help??


in reply to Re: Golf: Seven segment display
in thread Golf: Seven segment display

Applying the ...=~/./g trick (which you already used once inside the map) again:

sub w{for$;(-2..0){say map{substr'   _ _|_  |_| |',2*ord(('u$SR,Z]dmj'=~/./g)[$_])>>-3*$;&14,3}$_[0]=~/./g}}


Comment on Re^2: Golf: Seven segment display
Select or Download Code
Re^3: Golf: Seven segment display
by brx (Pilgrim) on Jan 24, 2012 at 15:34 UTC
    I think my idea is a "cul-de-sac" but this is a little bit shorter (7 char.).
    sub w{for$;(1005,924745596,341831533){say map{$;>>$_&1?/../?'|':_:$"}m +ap{$_+20,$_,$_+10}$_[0]=~/./g}}
    -- edit: Some explanations about 1005,924745596,341831533

      a few obvious optimizations:

      say map$'&2**$_?$_>9?'|':_:$",map{2 .$_,$_,1 .$_}split!//,"@_"for 1005,924745596,341831533

        I'd say the use of $' is less than obvious. Nice work btw.

        The shortest solution I know (not my own creation):

        for$;(0..2){say map{substr' | |_|_ _ _|',vec('0123456789abcdef',$;.$ +_,4),3}"@_"=~/./g}

        where '0123456789abcdef' is to be substituted with "\x09\x99\x90\x99\x99\x13\xBB\x75\x17\x55\x15\xB7\xB1\x15\xB5". When the \x codes are replaced with the actual characters, it comes out two characters shorter than the solution above. (Not very elegant, though.)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://949520]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (13)
As of 2014-08-22 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (158 votes), past polls