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
6 changes: 4 additions & 2 deletions HandHistories.Objects/Cards/CardGroup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,16 @@ public void AddCard(Card card)
throw new ArgumentException("Card " + card.ToString() + " already exists.");
}

if (Cards.Count >= 5)
if (Cards.Count >= GetMaxCardCount())
{
throw new ArgumentException("Board can't consist of more than 5 cards.");
throw new ArgumentException("Cannot add more than " + GetMaxCardCount() + " cards.");
}

Cards.Add(card);
}

protected abstract int GetMaxCardCount();

public void AddCards(IEnumerable<Card> cards)
{
foreach (var card in cards)
Expand Down
21 changes: 18 additions & 3 deletions HandHistories.Objects/Cards/HoleCards.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ public static HoleCards ForOmaha5(string playerName, Card card1, Card card2, Car
return new HoleCards(playerName, card1, card2, card3, card4, card5);
}

public static HoleCards ForOmaha6(Card card1, Card card2, Card card3, Card card4, Card card5, Card card6)
{
return new HoleCards(string.Empty, card1, card2, card3, card4, card5, card6);
}

public static HoleCards ForOmaha6(string playerName, Card card1, Card card2, Card card3, Card card4, Card card5, Card card6)
{
return new HoleCards(playerName, card1, card2, card3, card4, card5, card6);
}

public static HoleCards NoHolecards()
{
return new HoleCards(string.Empty);
Expand Down Expand Up @@ -74,11 +84,16 @@ public static HoleCards FromCards(string playerName, Card[] cards)
{
return NoHolecards();
}
if (cards.Length > 5)
if (cards.Length > 6)
{
throw new ArgumentException("Hole cards cant contain more than 5 cards.");
throw new ArgumentException("Hole cards cant contain more than 6 cards.");
}
return new HoleCards(playerName, cards);
}
}

protected override int GetMaxCardCount()
{
return 6; // Allow up to 6 cards for Six Card Omaha
}
}
}
7 changes: 7 additions & 0 deletions HandHistories.Objects/GameDescription/GameTypeUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ public static GameType ParseGameString(string gameString)
case "pot limit five card omaha":
case "5 card omaha pot limit":
return GameType.FiveCardPotLimitOmaha;
case "pot limit six card omaha hi-lo":
case "6 card omaha hi/lo pot limit":
return GameType.SixCardPotLimitOmahaHiLo;
case "omaha6 pot limit":
case "pot limit six card omaha":
case "6 card omaha pot limit":
return GameType.SixCardPotLimitOmaha;
default:
string match = Enum.GetNames(typeof(GameType)).FirstOrDefault(g => g.ToLower().Equals(gameString.ToLower()));
return match == null ? GameType.Unknown : (GameType)Enum.Parse(typeof(GameType), match,true);
Expand Down
24 changes: 24 additions & 0 deletions HandHistories.Objects/GameDescription/GameTypes.Statics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,30 @@ public static GameType FiveCardPotLimitOmaha
}
}

public static GameType SixCardFixedLimitOmaha
{
get
{
return new GameType(GameLimitEnum.FixedLimit, GameEnum.SixCardOmaha);
}
}

public static GameType SixCardNoLimitOmaha
{
get
{
return new GameType(GameLimitEnum.NoLimit, GameEnum.SixCardOmaha);
}
}

public static GameType SixCardPotLimitOmaha
{
get
{
return new GameType(GameLimitEnum.PotLimit, GameEnum.SixCardOmaha);
}
}

public static GameType FixedLimitOmahaHiLo
{
get
Expand Down
2 changes: 2 additions & 0 deletions HandHistories.Objects/GameDescription/GameTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public enum GameEnum : byte
[EnumMember]
FiveCardOmaha,
[EnumMember]
SixCardOmaha,
[EnumMember]
OmahaHiLo,
[EnumMember]
FiveCardOmahaHiLo,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,8 @@ private static GameType GetGameTypeFromLength(int startIndex, string line, int g
return GameType.PotLimitOmahaHiLo;
case 22:
return GameType.FiveCardPotLimitOmaha;
case 23:
return GameType.SixCardPotLimitOmaha;
case 20:
return GameType.NoLimitOmahaHiLo;
case 11:
Expand Down
Loading