Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: (Golf) Let's go bowling

by dragonchild (Archbishop)
on Aug 08, 2001 at 21:51 UTC ( [id://103133]=note: print w/replies, xml ) Need Help??


in reply to (Golf) Let's go bowling

Coming in at a whopping 223(!) characters, a first attempt:
for(0..$#_){if($_[$_]=~/X/){$t+=10+($_[$_+1]=~/X/?10:$_[$_+1])+($_[$_+ +2]=~/X/?10:($_[$_+2]=~/\//?10-$_[$_+1]:$_[$_+2]))}if($_[$_+1]=~/\//){ +$t+=10+($_[$_+2]=~/X/?10:$_[$_+2]);splice@_,$_+1,1;last if!defined$_[ +$_+2]}else{$t+=$_[$_]}}$t
There has to be a better way... I thought about switching the if-elsif-else to BLOCK,next if(EXPR);, but I couldn't figure a way to get rid of the splice in the elsif block. *shrugs*

Update: for(0..$#_){if($_[$_]=~/X/){$t+=10+($_[$_+1]=~/X/?10:$_[$_+1])+($_[$_+2]=~/X/?10:($_[$_+2]=~/\//?10-$_[$_+1]:$_[$_+2]));last if!defined$_[$_+3]}if($_[$_+1]=~/\//){$t+=10+($_[$_+2]=~/X/?10:$_[$_+2]);splice@_,$_+1,1;last if!defined$_[$_+2]}else{$t+=$_[$_]}}$t

That fixes the perfect score problem. Comes in at 242.

Update2: With some ideas from chipmunk, I'm down to 208. (I didn't want to steal his concept, but improve my own. *grins*)

@b=@_;sub X{pop=~X?10:pop}while(($_=shift@b)+1){$t+=10+X(($b[0])x2)+X( +($b[1]=~/\//?10-$b[0]:$b[1]),$b[1])and(defined$b[2]||last)if/X/;if($b +[0]=~m!/!){$t+=10+X(($b[1])x2)and(defined$b[2]||last)}else{$t+=$_}}$t

------
/me wants to be the brightest bulb in the chandelier!

Vote paco for President!

Replies are listed 'Best First'.
Re: Re: (Golf) Let's go bowling
by tachyon (Chancellor) on Aug 08, 2001 at 22:12 UTC

    This sub returns 330 for score(('X')x12) :o) Apparently mine is broken to, although I thought it conformed to the rules as stated. :-(

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2024-03-29 05:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found