Sha256: bbef3e67840efc0396a9e90def284bd67dace1b694fdb6fe0b0e6f66c214763a

Contents?: true

Size: 1.24 KB

Versions: 396

Compression:

Stored size: 1.24 KB

Contents

#import "ScrabbleScoreExample.h"

NSDictionary<NSString *, NSNumber *> *letterScores;

@implementation ScrabbleScore

+ (void)initialize {
    [super initialize];
    
    if (!letterScores) {
        letterScores =
        @{@"a" : @1, @"e" : @1, @"i" : @1, @"o" : @1, @"u" : @1, @"l" : @1, @"n" : @1, @"r" : @1, @"s" : @1, @"t" : @1,
          @"d" : @2, @"g" : @2,
          @"b" : @3, @"c" : @3, @"m" : @3, @"p" : @3,
          @"f" : @4, @"h" : @4, @"v" : @4, @"w" : @4, @"y" : @4,
          @"k" : @5,
          @"j" : @8, @"x" : @8,
          @"q" : @10, @"z" : @10};
    }
}

+ (int)score:(NSString *)word {
    return [self calculateScoreForWord:word];
}

- (instancetype)initWithWord:(NSString *)word {
    if (self = [super init]) {
        _score = [[self class] calculateScoreForWord:word];
    }
    
    return self;
}

+ (int)calculateScoreForWord:(NSString *)word {
    int score = 0;
    
    for (int i = 0; i < word.length; i++) {
        unichar character = [word characterAtIndex:i];
        
        NSString *letter = [[NSString stringWithFormat: @"%C", character] lowercaseString];
        NSNumber *value = letterScores[letter];
        
        if (value) {
            score += value.intValue;
        }
    }
    
    return score;
}

@end

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.118 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.117 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.116 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.115 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.114 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.113 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.111 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.110 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.109 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.108 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.107 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.106 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.105 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.104 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.103 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.102 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.101 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.100 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m
trackler-2.2.1.99 tracks/objective-c/exercises/scrabble-score/ScrabbleScoreExample.m