public void CanAssignStraight() { for (var i = 0; i < 1000; i++) { //assemble int firstSuiteOccurrences = 0; Suite firstSuite = 0; List <Suite> suites = new List <Suite>(); for (var j = 0; j < 5; j++) { while (true) { Suite tempSuite = (Suite)TestMethods.RandomSuite(); firstSuite = j == 0 ? tempSuite : firstSuite; firstSuiteOccurrences += tempSuite == firstSuite ? 1 : 0; if (!(firstSuiteOccurrences >= 4 && tempSuite == firstSuite)) { suites.Add(tempSuite); break; } } } for (var g = 1; g < 11; g++) { Player player = new Player("Gustav"); if (g == 1) { ICard[] hand = new ICard[5] { new Card(suites[0], (Rank)2), new Card(suites[1], (Rank)3), new Card(suites[2], (Rank)4), new Card(suites[3], (Rank)5), new Card(suites[4], (Rank)14) }; player.DrawCards(hand); } else { ICard[] hand = new ICard[5] { new Card(suites[0], (Rank)g), new Card(suites[1], (Rank)g + 1), new Card(suites[2], (Rank)g + 2), new Card(suites[3], (Rank)g + 3), new Card(suites[4], (Rank)g + 4) }; player.DrawCards(hand); player.SortHand(); } //act player.IdentifyHand(); //assert Assert.IsTrue(player.HandType == HandType.Straight); } } }
public void CanAssignStraightFlush() { for (var i = 0; i < 100; i++) { //assemble Suite suite = (Suite)TestMethods.RandomSuite(); for (var g = 1; g < 10; g++) { Player player = new Player("Gustav"); if (g == 1) { ICard[] hand = new ICard[5] { new Card(suite, (Rank)2), new Card(suite, (Rank)3), new Card(suite, (Rank)4), new Card(suite, (Rank)5), new Card(suite, (Rank)14) }; player.DrawCards(hand); } else { ICard[] hand = new ICard[5] { new Card(suite, (Rank)g), new Card(suite, (Rank)g + 1), new Card(suite, (Rank)g + 2), new Card(suite, (Rank)g + 3), new Card(suite, (Rank)g + 4) }; player.DrawCards(hand); player.SortHand(); } //act player.IdentifyHand(); //assert Assert.IsTrue(player.HandType == HandType.StraightFlush); } } }
public void CanAssignRoyalStraightFlush() { for (var i = 0; i < 100; i++) { //assemble Suite suite = (Suite)TestMethods.RandomSuite(); var cards = new Card[5] { new Card(suite, (Rank)10), new Card(suite, (Rank)11), new Card(suite, (Rank)12), new Card(suite, (Rank)13), new Card(suite, (Rank)14) }; Player player = new Player("Gustav"); player.DrawCards(cards); player.SortHand(); //act player.IdentifyHand(); //assert Assert.IsTrue(player.HandType == HandType.RoyalStraightFlush); } }
public void CanAssignHighCard() { for (var i = 0; i < 10000; i++) { //assemble int firstSuiteOccurrences = 0; Suite firstSuite = 0; List <Suite> suites = new List <Suite>(); List <Rank> rankes = new List <Rank>(); for (var j = 0; j < 5; j++) { while (true) { Suite tempSuite = (Suite)TestMethods.RandomSuite(); firstSuite = j == 0 ? tempSuite : firstSuite; firstSuiteOccurrences += tempSuite == firstSuite ? 1 : 0; if (!(firstSuiteOccurrences >= 5 && tempSuite == firstSuite)) { suites.Add(tempSuite); break; } } while (true) { bool isStraight = true; Rank tempRank = (Rank)TestMethods.RandomRank(); if (rankes.Count == 4) { List <Rank> tempRankes = new List <Rank>(); foreach (Rank element in rankes) { tempRankes.Add(element); } tempRankes.Add(tempRank); tempRankes.Sort(); for (var g = 0; g < 4; g++) { isStraight = (int)tempRankes[g] != (int)tempRankes[g + 1] - 1 ? false : isStraight; } if ((int)tempRankes[0] == 2 && (int)tempRankes[1] == 3 && (int)tempRankes[2] == 4 && (int)tempRankes[3] == 5 && (int)tempRankes[4] == 14) { isStraight = true; } } if (!rankes.Contains(tempRank) && !(rankes.Count == 4 && isStraight)) { rankes.Add(tempRank); break; } } } Player player = new Player("Gustav"); ICard[] hand = new ICard[5] { new Card(suites[0], rankes[0]), new Card(suites[1], rankes[1]), new Card(suites[2], rankes[2]), new Card(suites[3], rankes[3]), new Card(suites[4], rankes[4]) }; player.DrawCards(hand); player.SortHand(); //act player.IdentifyHand(); //assert Assert.IsTrue(player.HandType == HandType.HighCard); } }
public void CanAssignFlush() { for (var i = 0; i < 100; i++) { //assemble List <Rank> rankes = new List <Rank>(); Suite suite = (Suite)TestMethods.RandomSuite(); int pairs = 0; bool almostFullHouse = false; bool threeOfAKind = false; for (var j = 0; j < 5; j++) { while (true) { bool isStraight = true; Rank tempRank = (Rank)TestMethods.RandomRank(); if (rankes.Count == 4) { List <Rank> tempRankes = new List <Rank>(); foreach (Rank element in rankes) { tempRankes.Add(element); } tempRankes.Add(tempRank); tempRankes.Sort(); for (var g = 0; g < 4; g++) { isStraight = (int)tempRankes[g] != (int)tempRankes[g + 1] - 1 ? false : isStraight; } if ((int)tempRankes[0] == 2 && (int)tempRankes[1] == 3 && (int)tempRankes[2] == 4 && (int)tempRankes[3] == 5 && (int)tempRankes[4] == 14) { isStraight = true; } } Rank[] tempRankOccurrences = rankes.Where(element => element == tempRank).ToArray(); pairs += tempRankOccurrences.Length == 1 ? 1: 0; threeOfAKind = tempRankOccurrences.Length == 2 ? true: threeOfAKind; almostFullHouse = tempRankOccurrences.Length == 2 && pairs == 2 || tempRankOccurrences.Length == 1 && threeOfAKind ? true: almostFullHouse; if (tempRankOccurrences.Length != 3 && !(almostFullHouse && rankes.Contains(tempRank)) && !(rankes.Count == 4 && isStraight)) { rankes.Add(tempRank); break; } } } var cards = new Card[5] { new Card(suite, (Rank)rankes[0]), new Card(suite, (Rank)rankes[1]), new Card(suite, (Rank)rankes[2]), new Card(suite, (Rank)rankes[3]), new Card(suite, (Rank)rankes[4]) }; Player player = new Player("Gustav"); player.DrawCards(cards); player.SortHand(); //act player.IdentifyHand(); //assert Assert.IsTrue(player.HandType == HandType.Flush); } }