Sha256: d663213cecedd737d0cbae0afc88240d6b933eb8167252420789e277b2b42f8d

Contents?: true

Size: 607 Bytes

Versions: 323

Compression:

Stored size: 607 Bytes

Contents

package Example;

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

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.65 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.64 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.63 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.62 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.61 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.60 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.59 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.58 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.57 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.56 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.55 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.54 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.53 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.52 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.51 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.50 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.49 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.48 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.47 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.46 tracks/perl5/exercises/scrabble-score/Example.pm