diff --git a/SpellCastSolverLib/LetterState.cs b/SpellCastSolverLib/LetterState.cs index e5d1077..a468f73 100644 --- a/SpellCastSolverLib/LetterState.cs +++ b/SpellCastSolverLib/LetterState.cs @@ -27,22 +27,22 @@ public LetterState(char letter, int pointsMultiplier = 1, int multiplier = 1, bo { 'g', 3 }, { 'h', 4 }, { 'i', 1 }, - { 'j', 7 },// + { 'j', 7 }, { 'k', 5 },// { 'l', 3 }, - { 'm', 4 },// + { 'm', 4 }, { 'n', 2 }, { 'o', 1 }, { 'p', 4 },// { 'q', 8 }, { 'r', 2 }, - { 's', 2 },// + { 's', 2 }, { 't', 2 }, { 'u', 4 }, { 'v', 5 },// { 'w', 5 }, { 'x', 7 }, - { 'y', 7 },// - { 'z', 7 }// + { 'y', 4 }, + { 'z', 8 } }; } diff --git a/SpellCastSolverLib/Solver.cs b/SpellCastSolverLib/Solver.cs index 02b0a0d..e865250 100644 --- a/SpellCastSolverLib/Solver.cs +++ b/SpellCastSolverLib/Solver.cs @@ -82,7 +82,7 @@ IEnumerable TryResult(char c, int m, int p, int g, int sw) { string matchWord = words[match]; // Create result if the whole word is matched if (word.Length == matchWord.Length) { - yield return new SolveResult(words[match], p * m, g, path.ToArray()); + yield return new SolveResult(words[match], word.Length > 5 ? p * m + 10 : p * m, g, path.ToArray()); } else { any = true; } diff --git a/SpellCastSolverTests/SolverTest.cs b/SpellCastSolverTests/SolverTest.cs index 341c6a6..d2317ed 100644 --- a/SpellCastSolverTests/SolverTest.cs +++ b/SpellCastSolverTests/SolverTest.cs @@ -17,7 +17,7 @@ public void TestSolve() { var best = results.First(); Assert.AreEqual("outwore", best.Word); - Assert.AreEqual(36, best.Points); + Assert.AreEqual(46, best.Points); Assert.AreEqual(3, best.Gems); } @@ -27,7 +27,7 @@ public void TestSolveSwaps() { var best = results.First(); Assert.AreEqual("outworked", best.Word); - Assert.AreEqual(42, best.Points); + Assert.AreEqual(52, best.Points); Assert.AreEqual(0, best.Gems); } } \ No newline at end of file