Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 36 additions & 3 deletions exercise.main/Core.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,46 @@ public bool winningPair(IEnumerable<Tuple<string, string>> hands, out Tuple<stri
{
result = new Tuple<string,string>(string.Empty, string.Empty);

// your code here...
// your code here...

return result.Item1!=string.Empty ? true : false;
int currentHighestCardValue = 0;

foreach (var pair in hands)
{
if (pair.Item1 == pair.Item2 && GetValueOfCard(pair.Item1) > currentHighestCardValue)
{
currentHighestCardValue = GetValueOfCard(pair.Item1);
result = pair;
}
}

if (currentHighestCardValue != 0)
{
return true;
}

return false;
}

public int GetValueOfCard(string card)
{
return 0;
switch (card)
{
case "2": return 2;
case "3": return 3;
case "4": return 4;
case "5": return 5;
case "6": return 6;
case "7": return 7;
case "8": return 8;
case "9": return 9;
case "10": return 10;
case "J": return 11;
case "Q": return 12;
case "K": return 13;
case "A": return 14;
default: return 0;
}
}
}
}
38 changes: 38 additions & 0 deletions exercise.main/Extension.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;

Expand All @@ -13,8 +14,45 @@ public bool winningThree(IEnumerable<Tuple<string, string, string>> hand, out Tu
{
result = new Tuple<string, string, string>(string.Empty, string.Empty, string.Empty);

int currentHighestCardValue = 0;

foreach (var trio in hand)
{
if (trio.Item1 == trio.Item2 && trio.Item2 == trio.Item3 && GetValueOfCard(trio.Item1) > currentHighestCardValue)
{
currentHighestCardValue = GetValueOfCard(trio.Item1);
result = trio;
}
}

if (currentHighestCardValue != 0)
{
return true;
}

return false;
}

public int GetValueOfCard(string card)
{
switch (card)
{
case "2": return 2;
case "3": return 3;
case "4": return 4;
case "5": return 5;
case "6": return 6;
case "7": return 7;
case "8": return 8;
case "9": return 9;
case "10": return 10;
case "J": return 11;
case "Q": return 12;
case "K": return 13;
case "A": return 14;
default: return 0;
}
}

}
}
71 changes: 71 additions & 0 deletions exercise.tests/ExtensionTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
using exercise.main;

namespace exercise.tests;

public class ExtensionTests
{
[SetUp]
public void Setup()
{
}

[Test]
public void Scenario1()
{
Extension extension = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("K", "5", "1"),
new Tuple<string, string, string>("3", "7", "1")
};
Tuple<string, string, string> winner;

bool result = extension.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.Item3, Is.EqualTo(String.Empty));
}

[Test]
public void Scenario2()
{
Extension extension = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("A", "A", "A"),
new Tuple<string, string, string>("3", "7", "1")
};
Tuple<string, string, string> winner;

bool result = extension.winningThree(hand, out winner);

Assert.That(result, Is.True);
Assert.That(winner.Item1, Is.EqualTo("A"));
Assert.That(winner.Item2, Is.EqualTo("A"));
Assert.That(winner.Item3, Is.EqualTo("A"));
}

[Test]
public void Scenario3()
{
Extension extension = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("K", "K", "K"),
new Tuple<string, string, string>("Q", "Q", "Q")
};
Tuple<string, string, string> winner;

bool result = extension.winningThree(hand, out winner);

Assert.That(result, Is.True);
Assert.That(winner.Item1, Is.EqualTo("K"));
Assert.That(winner.Item2, Is.EqualTo("K"));
Assert.That(winner.Item3, Is.EqualTo("K"));
}
}