#!perl -lp
s/hu/00/g;s/een/+10/g;s/wel/12/g;$_="\$_=( $_)";for$b(ho,mi,b){$k+=3,s/$b/)*1E$k+(/}for$u(zeontwthfofisiseeiniteel=~/../g){s/ $u/+$%/g,$%++}y/ya-z /0/d;eval;s/.+?(?=(\d{3})+$)/$&,/g
|
#!perl -lp
$_="\$_=( $_)";s/hu/00/g;s/ho/)*1E3+(/;s/m/)*1E6+(/;s/b/)*1E9+(/;s/een/+10/g;s/wel/12/g;for$u(zeontwthfofisiseeiniteel=~/../g){s/ $u/+$%/g,$%++}y/ya-z /0/d;eval;1while s/(\d+)(\d{3})/$1,$2/
|
We are below two hundred strokes :-)
#!perl -lp
$_="\$_=( $_)";s/hu/00/g;s/ho/)*1E3+(/;s/m/)*1E6+(/;s/b/)*1E9+(/;s/een/+10/g;y/y/0/;s/wel/12/g;for$u(z,o,tw,th,fo,fi,si,se,ei,n,te,el){s/ $u/+$%/g,$%++}y/a-z //d;eval;1while s/(\d+)(\d{3})/$1,$2/
|
Oops - forgot the obfuscation ;-)
#!perl -lp
$_="\$_=($_)";s/hu\w+/*100/g;s/\w+a\w+/)*1000+(/;s/m\w+/)*1e6+(/;s/b\w+/)*1e9+(/;s/een/+10/g;s/y/*10/g;s/twelve/12/g;for$u(z,o,tw,th,fo,fi,si,se,ei,n,te,el){s/(\W)$u\w*/$1+$%/g,$%++}eval;1while s/^(\d+)(\d{3})/$1,$2/
|
A completely new idea
#!perl -lp
$_="\$_=($_)";
s/hu\w+/*100/g;
s/\w+a\w+/)*1000+(/g;
s/m\w+/)*1e6+(/g;
s/b\w+/)*1e9+(/g;
s/een/+10/g;
s/y/*10/g;
s/twelve/12/g;
for $u (z,o,tw,th,fo,fi,si,se,ei,n,te,el){
s/(\W)$u\w*/$1+$%/g,$%++;
}
eval;
1while s/^(\d+)(\d{3})/$1,$2/;
|
Getting rid of those number names saves some amount of bytes...
much improved!
#!perl -nla
for(@F){$x+=$g*1e3,$g=0,next if/a/;$x+=$g*1e6,$g=0,next if/m/;$x+=$g*1e9,$g=0,next if/b/;$g*=100,next if/^h/;for$u(z,o,tw,th,fo,fi,si,se,ei,n,te,el){last if/^$u/;$z++;$z=12if/lv/} $g+=10if/een$/;$g+=$z*10,$z=0if/y$/;$g+=$z;$z=0}$_=$x+$g;1while s/^(\d+)(\d{3})/$1,$2/;print
|
better (simpler) algorithm - better score...
#!perl -nla
$t{$_}=$i++for zero,one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve;@g=(fif,six,seven,eigh,nine);$t{$_.teen}=$i++for thir,four,@g;$t{$_.ty}=$i,$i+=10for twen,thir,'for',@g;for(@F){$g+=$t{$_};$g*=100if/^h/;$x+=$g*1e3,$g=0if/a/;$x+=$g*1e6,$g=0if/m/;$x+=$g*1e9,$g=0if/b/}$_=$x+$g;1while s/^(\d+)(\d{3})/$1,$2/;print
|
first shot...
he shoots, he scores
#!perl -ln
$t{$_}=$i++for zero,one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve;@g=(fif,six,seven,eigh,nine);$t{$_.teen}=$i++for thir,four,@g;$t{$_.ty}=$i,$i+=10for twen,thir,'for',@g;s/(\D*) b\w+/$n+=x($1)*1e9/e;s/(\D*) m\w+/$n+=x($1)*1e6/e;s/(\D*) tho\w+/$n+=x($1)*1e3/e;$_=$n+x($_);1while s/^(\d+)(\d{3})/$1,$2/;print;sub x{$q=0;$_=pop;s/([a-z]*) h\w+/$q+=$t{$1}*100/e;1while s/[a-z]+/$q+=$t{$&}/eg;$q}
|