From 75824ced3e12becc4a1fb6b628408179d0e20ecf Mon Sep 17 00:00:00 2001 From: binsky Date: Wed, 24 Nov 2021 11:12:35 +0100 Subject: [PATCH] add spare counts 10 test with unfinished implementation --- src/main/java/BowlingGameCalculator.java | 17 ++++------------- src/test/java/BowlingCalculatorTest.java | 3 ++- target/classes/BowlingGameCalculator.class | Bin 2583 -> 2609 bytes .../test-classes/BowlingCalculatorTest.class | Bin 1982 -> 2072 bytes 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/BowlingGameCalculator.java b/src/main/java/BowlingGameCalculator.java index 1fda65b..28ad78b 100644 --- a/src/main/java/BowlingGameCalculator.java +++ b/src/main/java/BowlingGameCalculator.java @@ -5,25 +5,16 @@ import java.util.regex.Pattern; public class BowlingGameCalculator { private static final Pattern SINGLE_VALUE_PATTERN = Pattern.compile("\\d"); - private static final Pattern SPARE_PATTERN = Pattern.compile("/[ -,]*(\\d)"); + private static final Pattern SPARE_PATTERN = Pattern.compile("(\\d)[ ,]*/[ -,]*(\\d)"); private static final int INITIAL_SCORE_VALUE = 0; public int score(String playerResult) { int playerScore = INITIAL_SCORE_VALUE; - /* - Matcher singleDigit = SINGLE_VALUE_PATTERN.matcher(playerResult); - while (singleDigit.find()) { - playerScore += Integer.parseInt(singleDigit.group()); - } - - Matcher spare = SPARE_PATTERN.matcher(playerResult); - Function spareScorer = (spareMatcher) -> 10 + Integer.parseInt(spare.group(1)); - playerScore = scoreMatch(playerScore, spare, spareScorer); - */ - playerScore += scoreMatch(SINGLE_VALUE_PATTERN.matcher(playerResult), (spareMatcher) -> Integer.parseInt(spareMatcher.group())); - playerScore += scoreMatch(SPARE_PATTERN.matcher(playerResult), (spareMatcher) -> 10 + Integer.parseInt(spareMatcher.group(1))); + playerScore += scoreMatch(SPARE_PATTERN.matcher(playerResult), (spareMatcher) -> + 10 + Integer.parseInt(spareMatcher.group(2)) + - Integer.parseInt(spareMatcher.group(1))); return playerScore; } diff --git a/src/test/java/BowlingCalculatorTest.java b/src/test/java/BowlingCalculatorTest.java index a63a75a..4a8f2bc 100644 --- a/src/test/java/BowlingCalculatorTest.java +++ b/src/test/java/BowlingCalculatorTest.java @@ -23,7 +23,8 @@ public class BowlingCalculatorTest { Arguments.of("worst game", "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", 0), // 20x 0 Arguments.of("some incomplete frames", "0,1,2,3,0,0,4,0,0,5,0,0,6,0,0,0,0,0,0,0", 21), Arguments.of("some other incomplete frames", "9- 9- 9- 9- 9- 9- 9- 9- 9- 9-", 90), - Arguments.of("roll after spare counts twice", "0,0 ,0,/ ,1,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0", 12) // Wurf nach Spare (/) zählt doppelt + Arguments.of("roll after spare counts twice", "0,0 ,0,/ ,1,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0", 12), // Wurf nach Spare (/) zählt doppelt + Arguments.of("spare counts 10", "5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/5", 150) ); } } diff --git a/target/classes/BowlingGameCalculator.class b/target/classes/BowlingGameCalculator.class index 649e59fadff4f972234c4cd71fbcfeb33ebd7283..c37f9cd1b3e2fe1686553e0355205eb375a1e50e 100644 GIT binary patch delta 135 zcmbO(vQcD%A2XMTMofxkw1Q5o)@Fa^?<|~r45AGD3>pl=ll?g|dBqu+7$g`t86+8G z7^Ej3W3 Z1Q|qtv@ejy1JOG8*#$d36!6ab^gT)4*5EFwBkYoc(OELHY**p-Xlgl~H7$qmK<7@^1 DAAJ#` diff --git a/target/test-classes/BowlingCalculatorTest.class b/target/test-classes/BowlingCalculatorTest.class index b58c7dd1dda9614c569fc88d09e88735eb8f07f2..2757ae475d09529e3854e96c3be39c6d8bec1b09 100644 GIT binary patch delta 427 zcmZ{f%}WAN6vclt<2Y(kI)U~9GPH8sScFhkmRXjSX-!{~6@;`YsK{EkZC7AKe@4u1|73cYA!jffCdFJcua%Yg*L&?$t>#gsKWHfE_yr4+r6np7_0$_mONh#X zV7ClG76rq<0*Wk22FsL0RcMy{+1swx#3$G*>IhNElJtANoOA*E&u6p3s@KbAO;~pw zn=#8WVeRWV2_Yomx$~ks!t3-cnma6^{Qo2net{h%r3*?Vw%`=$*#Hp*2+6Jy zi$Yu*iQ?V4Gjrz6OltX@|NZls12OkgKeB7HtPy*xSBcm#1ZnOB>DX?X*4vjow0fIZ zqQS=C;7Z%dRuqk*6TM@mG8P?a(S{0J(&`_;Hap5-mpxJK^x2I~C(Yd8si0b#f$*OS z+2^2~3^|l5mWLd1tOF`6bHXVz%(K9mY7Xb>2co)~=_OonDbs(zBwXR^T^CCQz2HgV u(aTsG*ltGJ_lEHYtFNk>^87}5OkE!aG_|73A|o0k)VUF5aVzq!bc0{-lPEL*