From: email55555 email55555 Date: 2005-01-10T14:03:57+09:00 Subject: Re: [SOLUTION] Ruby Quiz #14 LCD Numbers ( solution #2 ) Wow ... Jannis Harder's program is down to 295 bytes ... Mmm... Let me try to squeeze a little bit more. First, according to the Quiz, we do not need to take care of multi-mumbers, so, I change $*.join to $*[0] ==> just take the first number ==> save me 2 bytes. Second, I got new idea again ( always base on Jannis Harder's lastest code ), this time it is down to 264 bytes ( note: run this program without any parameter will fail after replace $*.join by $*[0], if this is not acceptable, replace back, so my program will become 266 bytes. After all, this program likes Jannis Harder's origin, do not do many error checking; for example: if input is "lcd.rb -s abc xxx" ==> size invalid will become size zero, and any no digit character will become zero digit) s=(s=$*.index"-s")?$*.slice!(s,2)[1].to_i: 2 d,="\21\265\22H\245\10-\0\23".unpack"B*" f=" " o=48 y=(0..4).map{|x|$*[0].split('').map{|z|u=d[7*z.to_i,7] x%2==0 ?u[x/2*3]>o ?f*s+f+f:f+"-"*s+f:(u[h=x*4/3]>o ?f:"|")+f*s+(u[h+1]>o ?f:"|")}*f} y[3,1]*=s y[1,1]*=s puts y