Sha256: f47fa5e256cc1472fe7f3967e17aff748656203d151421a68037896b9b4988e5
Contents?: true
Size: 604 Bytes
Versions: 73
Compression:
Stored size: 604 Bytes
Contents
package Word; use strict; use warnings; use List::Util 'first'; sub new { my ($class, $word) = @_; return bless { word => lc $word } => $class; } sub score { my ($self, %extension) = @_; my $score = 0; my %values = qw( aeioulnrst 1 dg 2 bcmp 3 fhvwy 4 k 5 jx 8 qz 10 ZERO 0 ); foreach my $c (split '' => $self->{word}) { $score += $values{ first { /$c/ } keys %values or 'ZERO' } } $score *= (2 ** $extension{double}) if $extension{double}; $score *= (3 ** $extension{triple}) if $extension{triple}; return $score ; } 1;
Version data entries
73 entries across 73 versions & 1 rubygems