From 894598e432931d9467842f1dc6544d3fb68573ce Mon Sep 17 00:00:00 2001 From: Kristian Date: Thu, 11 Jan 2024 14:49:41 +0100 Subject: [PATCH 1/2] solution pt1 --- exercise.main/Core.cs | 26 ++++++++++++++++++++------ exercise.main/Extension.cs | 26 +++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/exercise.main/Core.cs b/exercise.main/Core.cs index 7568220..ec2dbed 100644 --- a/exercise.main/Core.cs +++ b/exercise.main/Core.cs @@ -16,17 +16,31 @@ public class Core public bool winningPair(IEnumerable> hand, out Tuple result) { result = new Tuple(string.Empty, string.Empty); - - + int winningHand = 0; - - - return result.Item1!=string.Empty ? true : false; + foreach (var pair in hand) + { + if (pair.Item1 == pair.Item2 && GetValueOfCard(pair.Item1) > winningHand) + { + winningHand = GetValueOfCard(pair.Item1); + result = pair; + } + } + return winningHand > 0; } public int GetValueOfCard(string card) { - return 0; + if(Int32.TryParse(card, out int result)) return result; + + switch (card.ToUpper()) + { + case "J": { return 11; break; } + case "Q": { return 12; break; } + case "K": { return 13; break; } + case "A": { return 14; break; } + default: return 0; + } } } } diff --git a/exercise.main/Extension.cs b/exercise.main/Extension.cs index b33ba1f..ef5c417 100644 --- a/exercise.main/Extension.cs +++ b/exercise.main/Extension.cs @@ -13,7 +13,31 @@ public bool winningThree(IEnumerable> hand, out Tu { result = new Tuple(string.Empty, string.Empty, string.Empty); - return false; + int winningHand = 0; + + foreach (var triplet in hand) + { + if (triplet.Item1 == triplet.Item2 && triplet.Item1 == triplet.Item3 && GetValueOfCard(triplet.Item1) > winningHand) + { + winningHand = GetValueOfCard(triplet.Item1); + result = triplet; + } + } + return winningHand > 0; + } + + public int GetValueOfCard(string card) + { + if (Int32.TryParse(card, out int result)) return result; + + switch (card.ToUpper()) + { + case "J": { return 11; break; } + case "Q": { return 12; break; } + case "K": { return 13; break; } + case "A": { return 14; break; } + default: return 0; + } } } From 1a6508e328331e53c02c94a9df5d5030520c32fd Mon Sep 17 00:00:00 2001 From: Kristian Date: Fri, 12 Jan 2024 09:39:30 +0100 Subject: [PATCH 2/2] Added extension tests --- exercise.tests/ExtensionTests.cs | 75 ++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 exercise.tests/ExtensionTests.cs diff --git a/exercise.tests/ExtensionTests.cs b/exercise.tests/ExtensionTests.cs new file mode 100644 index 0000000..8643f41 --- /dev/null +++ b/exercise.tests/ExtensionTests.cs @@ -0,0 +1,75 @@ +using exercise.main; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace exercise.tests +{ + [TestFixture] + public class ExtensionTests + { + [Test] + public void Scenario1() + { + Extension ext = new Extension(); + + List> hand = new List> + { + new Tuple("K", "5", "K"), + new Tuple("3","7", "3") + }; + Tuple winner; + + bool result = ext.winningThree(hand, out winner); + + Assert.That(result, Is.False); + Assert.That(winner.Item1, Is.EqualTo(String.Empty)); + Assert.That(winner.Item2, Is.EqualTo(String.Empty)); + Assert.That(winner.Item2, Is.EqualTo(String.Empty)); + } + + [Test] + public void Scenario2() + { + Extension ext = new Extension(); + + List> hand = new List> + { + new Tuple("5", "5", "K"), + new Tuple("J","J", "J") + }; + Tuple winner; + + bool result = ext.winningThree(hand, out winner); + + Assert.That(result, Is.True); + Assert.That(winner.Item1, Is.EqualTo("J")); + Assert.That(winner.Item1, Is.EqualTo("J")); + Assert.That(winner.Item1, Is.EqualTo("J")); + + } + + [Test] + public void Scenario3() + { + Extension ext = new Extension(); + + List> hand = new List> + { + new Tuple("7", "7", "7"), + new Tuple("A","A", "A") + }; + Tuple winner; + + bool result = ext.winningThree(hand, out winner); + + Assert.That(result, Is.True); + Assert.That(winner.Item1, Is.EqualTo("A")); + Assert.That(winner.Item1, Is.EqualTo("A")); + Assert.That(winner.Item1, Is.EqualTo("A")); + + } + } +}