protected override string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (whiteCards.IsStraightCards() && !blackCards.IsStraightFlushCards() && !blackCards.IsFourOfAKindCards() && !blackCards.IsFullHouseCards() && !blackCards.IsFlushCards()) { HasResult = true; return(string.Format(StringConstant.WHITE_WIN_TEMPLATE, StringConstant.STRAIGHT)); } if (blackCards.IsStraightCards() && !whiteCards.IsStraightFlushCards() && !whiteCards.IsFourOfAKindCards() && !whiteCards.IsFullHouseCards() && !whiteCards.IsFlushCards()) { HasResult = true; return(string.Format(StringConstant.BLACK_WIN_TEMPLATE, StringConstant.STRAIGHT)); } return(StringConstant.CHEAT); }
protected override string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards) { var theMaxValueWhiteCard = whiteCards.GetTheMaxValueCard(); var theMaxValueBlackCard = blackCards.GetTheMaxValueCard(); HasResult = true; return(theMaxValueWhiteCard.CompareWith(theMaxValueBlackCard)); }
public override bool IsCheckingFinished(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (whiteCards.IsMessyCards() && blackCards.IsMessyCards()) { Result = CompareSameType(whiteCards, blackCards); } return(HasResult); }
protected override string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards) { var whiteFullHouseCard = whiteCards.GetSameNumberCardByCount(4); var blackFullHouseCard = blackCards.GetSameNumberCardByCount(4); var compareResult = whiteFullHouseCard.CompareWith(blackFullHouseCard); HasResult = true; return(compareResult.Equals(StringConstant.TIE) ? StringConstant.CHEAT : compareResult); }
public override bool IsCheckingFinished(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (!HasResult && whiteCards.IsFlushCards() && blackCards.IsFlushCards()) { Result = CompareSameType(whiteCards, blackCards); } if (!HasResult && (whiteCards.IsFlushCards() || blackCards.IsFlushCards())) { Result = DirectlyWin(whiteCards, blackCards); } return(HasResult); }
public void ReadBlackCards(List <string> blackHandCars = null) { Console.WriteLine(INPUT_BLACK_CARDS); var gotThem = blackHandCars ?? Console.ReadLine()?.Split(' ').ToList(); try { _blackHandCards = new DescendingHandCards(gotThem); } catch (IsNotCardException e) { Console.WriteLine(e.Message); Environment.Exit(0); } }
protected override string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (whiteCards.IsTwoPairsCards() && (blackCards.IsMessyCards() || blackCards.IsOnePairCards())) { HasResult = true; return(string.Format(StringConstant.WHITE_WIN_TEMPLATE, StringConstant.TWO_PAIRS)); } if (blackCards.IsTwoPairsCards() && (whiteCards.IsMessyCards() || whiteCards.IsOnePairCards())) { HasResult = true; return(string.Format(StringConstant.BLACK_WIN_TEMPLATE, StringConstant.TWO_PAIRS)); } return(StringConstant.TIE); }
protected override string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards) { var whitePairs = whiteCards.GetTwoPairsCards(); var blackPairs = blackCards.GetTwoPairsCards(); var highCard = whitePairs.CompareWith(blackPairs); if (highCard.Equals(StringConstant.TIE)) { var singleWhiteCard = whiteCards.GetSingleCards(); var singleBlackCard = blackCards.GetSingleCards(); highCard = singleWhiteCard.CompareWith(singleBlackCard); } HasResult = true; return(highCard); }
protected override string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards) { var whitePair = whiteCards.GetSameNumberCardByCount(2); var blackPair = blackCards.GetSameNumberCardByCount(2); var compareResult = whitePair.CompareWith(blackPair); HasResult = true; if (!compareResult.Equals(StringConstant.TIE)) { return(compareResult); } var whiteSingleCards = whiteCards.GetSingleCards(); var blackSingleCards = blackCards.GetSingleCards(); return(whiteSingleCards.CompareWith(blackSingleCards)); }
protected override string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (whiteCards.IsStraightFlushCards() && !blackCards.IsStraightFlushCards()) { HasResult = true; return(string.Format(StringConstant.WHITE_WIN_TEMPLATE, StringConstant.STRAIGHT_FLUSH)); } if (!whiteCards.IsStraightFlushCards() && blackCards.IsStraightFlushCards()) { HasResult = true; return(string.Format(StringConstant.BLACK_WIN_TEMPLATE, StringConstant.STRAIGHT_FLUSH)); } return(StringConstant.TIE); }
protected override string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards) { if (whiteCards.IsFourOfAKindCards() && !blackCards.IsFourOfAKindCards() && !blackCards.IsStraightFlushCards()) { HasResult = true; return(string.Format(StringConstant.WHITE_WIN_TEMPLATE, StringConstant.FOUR_OF_A_KIND)); } if (blackCards.IsFourOfAKindCards() && !whiteCards.IsFourOfAKindCards() && !whiteCards.IsStraightFlushCards()) { HasResult = true; return(string.Format(StringConstant.BLACK_WIN_TEMPLATE, StringConstant.FOUR_OF_A_KIND)); } return(StringConstant.TIE); }
protected override string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards) { HasResult = true; return(whiteCards.CompareWith(blackCards)); }
protected abstract string CompareSameType(DescendingHandCards whiteCards, DescendingHandCards blackCards);
protected abstract string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards);
public abstract bool IsCheckingFinished(DescendingHandCards whiteCards, DescendingHandCards blackCards);
public string Check(DescendingHandCards whiteCards, DescendingHandCards blackCards) { return(_checkers.Find(checker => checker.IsCheckingFinished(whiteCards, blackCards)).ShowHand()); }
protected override string DirectlyWin(DescendingHandCards whiteCards, DescendingHandCards blackCards) { throw new System.NotImplementedException(); }