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

Version Path
trackler-2.2.1.180 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.179 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.178 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.177 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.176 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.175 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.174 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.173 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.172 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.171 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.170 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.169 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.167 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.166 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.165 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.164 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.163 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.162 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.161 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm
trackler-2.2.1.160 tracks/perl5/exercises/scrabble-score/.meta/solutions/Word.pm