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.85 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.84 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.83 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.82 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.81 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.80 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.79 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.78 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.77 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.76 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.75 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.74 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.73 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.72 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.71 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.70 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.69 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.68 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.67 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.66 tracks/perl5/exercises/scrabble-score/Example.pm