http://www.perlmonks.org?node_id=103196


in reply to (Golf) Let's go bowling

218, runs test suite :-) Thanks to dragonchild and nardo for filling me in on the real rules, not the rules as I saw them.

print score(qw(5 / 6 3 X X 7 0 4 3 X 4 / 8 1 3 / 6)),"--> 146\n"; print score(qw(X X X X X X X X X X X X)), "--> 300\n"; print score(qw(0 / X 0 / X 0 / X 0 / X 0 / X 0 /)),"--> 200\n"; print score(qw(X 0 / X 0 / X 0 / X 0 / X 0 / X 0)),"--> 200\n"; sub score { $i=-1;$f=$t=1;$b=0;for(@_){$i++;$o=$_[$i+1];$d=$_[$i+2]; last if$f>10;if(/X/){$s=($d eq'/')?20:10+n($o)+n($d);} elsif(/\//){$s=10+n($o);$t=1}else{$s+=$_;$t^=1;$t||next} $b+=$s;$f++;$s=0;}sub n{$v=pop;$v=~/[X\/]/?10:$v}$b }

cheers

tachyon

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