private void PlayTurn() { if (Deck.IsEmpty) { return; } int colourGuess = Strat.ChooseColour(Deck); Card dealtCard1 = Deck.DealRandomCard(); if (colourGuess != dealtCard1.Colour) { DrinksTaken++; return; } if (Deck.IsEmpty) { return; } int highLowGuess = Strat.ChooseHighLow(dealtCard1, Deck); Card dealtCard2 = Deck.DealRandomCard(); if ((highLowGuess == Strategy.HL_HIGH && !dealtCard2.IsHigherThan(dealtCard1)) || (highLowGuess == Strategy.HL_LOW && !dealtCard2.IsLowerThan(dealtCard1)) || (highLowGuess == Strategy.HL_EQUAL && !dealtCard2.HasSameRankAs(dealtCard1))) { DrinksTaken++; return; } if (Deck.IsEmpty) { return; } int inOutGuess = Strat.ChooseInOut(dealtCard1, dealtCard2, Deck); Card dealtCard3 = Deck.DealRandomCard(); if ((highLowGuess == Strategy.IO_IN && !dealtCard3.IsInside(dealtCard1, dealtCard2)) || (highLowGuess == Strategy.IO_OUT && !dealtCard3.IsOutside(dealtCard1, dealtCard2)) || (highLowGuess == Strategy.IO_ON && dealtCard3.IsOnTopOf(dealtCard1, dealtCard2))) { DrinksTaken++; return; } if (Deck.IsEmpty) { return; } bool faceGuess = Strat.ChooseHasFace(Deck); if (Deck.DealRandomCard().IsFace != faceGuess) { DrinksTaken++; return; } if (Deck.IsEmpty) { return; } int suitGuess = Strat.ChooseSuit(Deck); if (Deck.DealRandomCard().Suit != suitGuess) { DrinksTaken++; return; } WonGame = true; return; }