public async Task <ActionResult <CountedCardResponse> > GetNextCountedCardAsync(string cardsLeftCSV, int currentCount, string cardsPlayedCSV) { (bool success, List <Card> cardsLeft, string badCard) = ParseCards(cardsLeftCSV); if (!success) { return(NotFound($"Bad Card in played cards: {badCard}")); } List <Card> cardsPlayed = null; if (cardsPlayedCSV != "") { (success, cardsPlayed, badCard) = ParseCards(cardsPlayedCSV); if (!success) { return(NotFound($"Bad Card in played cards: {badCard}")); } } CountingPlayer player = new CountingPlayer(true); Card toPlay = await player.GetCountCard(cardsPlayed, cardsLeft, currentCount); int score = CardScoring.ScoreCountingCardsPlayed(cardsPlayed, toPlay, currentCount, out List <Score> scoreList); return(new CountedCardResponse(toPlay, score, scoreList)); }
private async Task <GetRandomHandResponse> GetRandomHandAsync(int[] randomSequence, bool isComputerCrib) { List <Card> playerCards = new List <Card>(); List <Card> computerCards = new List <Card>(); string csv = ""; for (int i = 0; i < 6; i++) { Card card = _deck.Cards[randomSequence[i]]; card.Owner = Owner.Player; playerCards.Add(card); csv += $"{randomSequence[i]},"; } for (int i = 6; i < 12; i++) { Card card = _deck.Cards[randomSequence[i]]; card.Owner = Owner.Computer; computerCards.Add(card); csv += $"{randomSequence[i]},"; } CountingPlayer player = new CountingPlayer(true); List <Card> crib = await player.SelectCribCards(computerCards, isComputerCrib); Card sharedCard = _deck.Cards[randomSequence[12]]; csv += $"{randomSequence[12]},"; string repeatUrl = $"cribbage/getrandomhand/{isComputerCrib}/{csv}"; return(new GetRandomHandResponse(playerCards, computerCards, crib, sharedCard, ((int)(sharedCard.Ordinal) == 11), repeatUrl)); }
public async Task <ActionResult <List <Card> > > GetCribCardsAsync(string handCSV, bool isMyCrib) { (bool success, List <Card> hand, string badCard) = ParseCards(handCSV); if (!success) { return(NotFound($"Bad Card in hand: {badCard}")); } if (hand.Count != 6) { return(BadRequest($"Wrong number of cards. Need 6, got {hand.Count}")); } CountingPlayer player = new CountingPlayer(true); List <Card> cards = await player.SelectCribCards(hand, isMyCrib); return(cards); }