From e285e25a34b73cd34adc7558ecb0cb41e9536f71 Mon Sep 17 00:00:00 2001 From: di7chro Date: Mon, 27 Apr 2015 14:25:35 +0200 Subject: [PATCH] =?UTF-8?q?Handles=20prison=20(k=C3=A5k)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokerKata/src/session3/PokerGame.java | 29 ++++++++++++++++------ PokerKata/test/session3/PokerGameTest.java | 9 +++++++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/PokerKata/src/session3/PokerGame.java b/PokerKata/src/session3/PokerGame.java index 841bad9..0fd5f3f 100644 --- a/PokerKata/src/session3/PokerGame.java +++ b/PokerKata/src/session3/PokerGame.java @@ -15,14 +15,18 @@ public class PokerGame { public int getScore(String hand) { int score = 0; - if (findPair(hand) == true) - score = 2; - if (findThreeOfAKind(hand) == true) - score = 3; - if (findTwoPairs(hand) == true) - score = 6; - if (findFourOfAKind(hand) == true) + if (findPrison(hand) == true) + score = 9; + else if (findFourOfAKind(hand) == true) score = 7; + else if (findTwoPairs(hand) == true) + score = 6; + else if (findThreeOfAKind(hand) == true) + score = 3; + else if (findPair(hand) == true) + score = 2; + else + score = 0; return score; } @@ -80,6 +84,17 @@ public class PokerGame { return false; } + private boolean findPrison(String hand) { + char[] values = getValues(hand); + + // We have a prison if the first and last two cards are a pair, and the + // middle card has same value as either of them (is three of a kind) + if (values[0] == values[1] && values[3] == values[4] + && (values[0] == values[2] || values[2] == values[3])) + return true; + return false; + } + private char[] getValues(String hand) { char[] values = "".toCharArray(); String temp = ""; diff --git a/PokerKata/test/session3/PokerGameTest.java b/PokerKata/test/session3/PokerGameTest.java index 3ede53c..7a252e8 100644 --- a/PokerKata/test/session3/PokerGameTest.java +++ b/PokerKata/test/session3/PokerGameTest.java @@ -60,4 +60,13 @@ public class PokerGameTest { assertEquals(7, result); } + + @Test + public void prison_gives_9() throws Exception { + String hand = "S2K2R2H7S7"; + + int result = myGame.getScore(hand); + + assertEquals(9, result); + } }