From 822726e0162f3e2b23aa8b54b499738b39328176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matilda=20S=C3=B6nnergaard?= Date: Wed, 8 Jan 2025 13:11:34 +0100 Subject: [PATCH 1/2] Complete core exercise --- src/main/java/com/booleanuk/Scrabble.java | 24 +++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/Scrabble.java b/src/main/java/com/booleanuk/Scrabble.java index 88108a8..c0affb8 100644 --- a/src/main/java/com/booleanuk/Scrabble.java +++ b/src/main/java/com/booleanuk/Scrabble.java @@ -1,12 +1,32 @@ package com.booleanuk; public class Scrabble { + String word; public Scrabble(String word) { - + this.word = word; } public int score() { - return -1; + int score = 0; + for (int i=0; i Date: Wed, 8 Jan 2025 16:27:23 +0100 Subject: [PATCH 2/2] Complete extended exercise --- src/main/java/com/booleanuk/Scrabble.java | 84 ++++++++++++++++++----- 1 file changed, 68 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/booleanuk/Scrabble.java b/src/main/java/com/booleanuk/Scrabble.java index c0affb8..2c04687 100644 --- a/src/main/java/com/booleanuk/Scrabble.java +++ b/src/main/java/com/booleanuk/Scrabble.java @@ -1,32 +1,84 @@ package com.booleanuk; +import java.util.ArrayList; +import java.util.List; + public class Scrabble { String word; public Scrabble(String word) { this.word = word; } + private int getLetterScore(String letter) { + if ("AEIOULNRSTaeioulnrst".contains(letter)) { + return 1; + } else if ("DGdg".contains(letter)) { + return 2; + } else if ("BCMPbcmp".contains(letter)) { + return 3; + } else if ("FHVWYfhvwy".contains(letter)) { + return 4; + } else if ("Kk".contains(letter)) { + return 5; + } else if ("JXjx".contains(letter)) { + return 8; + } else if ("QZqz".contains(letter)) { + return 10; + } + return 0; + } + public int score() { int score = 0; - for (int i=0; i brackets = new ArrayList<>(); + + for (int i = 0; i 0; + + if (lettersInARowCountdown == 0) return 0; + if (bracketInsideWord) lettersInARowCountdown--; + + if (letterScore == 0) { + if (letter.equals("[")) { + multiplier *= 3; + brackets.add("["); + bracketInsideWord = insideWord; + } else if (letter.equals("{")) { + multiplier *= 2; + brackets.add("{"); + bracketInsideWord = insideWord; + } else if (letter.equals("]")) { + if (brackets.isEmpty() || !"[".equals(brackets.getLast())) { + return 0; + } + lettersInARowCountdown = 2; + bracketInsideWord = false; + multiplier /= 3; + brackets.removeLast(); + } else if (letter.equals("}")) { + if (brackets.isEmpty() || !"{".equals(brackets.getLast())) { + return 0; + } + lettersInARowCountdown = 2; + bracketInsideWord = false; + multiplier /= 2; + brackets.removeLast(); + } else { + return 0; + } } } + + if (!brackets.isEmpty()) return 0; return score; } - }