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); }