From 36b683be977f1134b5fe1134d23c8702d8edb8e9 Mon Sep 17 00:00:00 2001 From: Marie Helene Hansen Date: Wed, 6 Aug 2025 15:05:36 +0200 Subject: [PATCH] task complete --- src/main/java/com/booleanuk/Scrabble.java | 47 ++++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/Scrabble.java b/src/main/java/com/booleanuk/Scrabble.java index 88108a8..db7680b 100644 --- a/src/main/java/com/booleanuk/Scrabble.java +++ b/src/main/java/com/booleanuk/Scrabble.java @@ -1,12 +1,55 @@ package com.booleanuk; +import java.util.HashMap; + public class Scrabble { + private final String word; public Scrabble(String word) { - + this.word = word; } public int score() { - return -1; + int score = 0; + HashMap scoreMap = getScoreMap(); + + score = singleScore(scoreMap); + + return score; + } + + private static HashMap getScoreMap() { + char[] ones = {'A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T'}; + char[] twos = {'D', 'G'}; + char[] threes = {'B', 'C', 'M', 'P'}; + char[] fours = {'F', 'H', 'V', 'W', 'Y'}; + char[] fives = {'K'}; + char[] eights = {'J', 'X'}; + char[] tens = {'Q', 'Z'}; + + HashMap scoreMap = new HashMap<>(); + scoreMap.put(ones, 1); + scoreMap.put(twos, 2); + scoreMap.put(threes, 3); + scoreMap.put(fours, 4); + scoreMap.put(fives, 5); + scoreMap.put(eights, 8); + scoreMap.put(tens, 10); + return scoreMap; } + private int singleScore(HashMap scoreMap) { + int score = 0; + for (char c : this.word.toUpperCase().toCharArray()) { + for (char[] kc : scoreMap.keySet()) { + for (char kcc : kc) { + if (c == kcc) { + score += scoreMap.get(kc); + } + } + } + } + return score; + } + + }