Esempio n. 1
0
        public async Task DeleteCard(Card.SuitType suit, Card.ValType val)
        {
            Card card = await _Context.Cards.FirstOrDefaultAsync(c => c.Suit == suit && c.Value == val);

            _Context.Cards.Remove(card);
            await _Context.SaveChangesAsync();
        }
Esempio n. 2
0
        public static int EvaluateFullHand(Card[] cards, int cutIndex)
        {
            //Evaluates the 5 cards according to the rules of Cribbage

            //The cut card is treated differently than the rest for knobs and flush purposes
            //Could assume that the last card is always the cut card but that isn't very cohesive

            //return 29;

            if (cutIndex < cards.Count())
            {
                var faces    = new Card.FaceType[cards.Count()];
                var faceVals = new int[(int)Card.FaceType.King + 1];
                var suits    = new Card.SuitType[cards.Count()];
                var values   = new int[cards.Count()];

                for (int i = 0; i < cards.Count(); i++)
                {
                    faces[i] = cards[i].Face;
                    faceVals[(int)cards[i].Face]++;
                    suits[i]  = cards[i].Suit;
                    values[i] = cards[i].Value;
                }

                int fifteens = FindFifteens(values);
                int pairs    = FindPairs(faces);
                int runs     = FindRuns(faceVals);
                int knobs    = FindKnobs(cards, cutIndex);
                int flush    = IsFlush(suits, cutIndex);

                //foreach(var card in cards)
                //{
                //    Console.WriteLine(card);
                //}

                //Console.WriteLine("Fifteens: {0}", fifteens);
                //Console.WriteLine("Pairs   : {0}", pairs);
                //Console.WriteLine("Runs    : {0}", runs);
                //Console.WriteLine("Knobs   : {0}", knobs);
                //Console.WriteLine("Flush   : {0}", flush);
                //Console.ReadKey();

                int total = fifteens + pairs + runs + flush + knobs;

                //Console.WriteLine("Total: {0}", total);
                //Console.ReadKey();

                return(total);
            }
            else
            {
                throw new ArgumentException("CutIndex out of range!");
            }
        }
Esempio n. 3
0
        public static string GetName(this Card.SuitType param)
        {
            var str = "";

            switch (param)
            {
            case Card.SuitType.clover:
                str = "クローバー";
                break;

            case Card.SuitType.heart:
                str = "ハート";
                break;

            case Card.SuitType.diamond:
                str = "ダイヤ";
                break;

            case Card.SuitType.spade:
                str = "スペード";
                break;

            case Card.SuitType.black:
                str = "黒";
                break;

            case Card.SuitType.red:
                str = "赤";
                break;

            default:
                str = "エラー";
                break;
            }
            return(str);
        }
Esempio n. 4
0
        public static string GetMark(this Card.SuitType param)
        {
            var str = "";

            switch (param)
            {
            case Card.SuitType.clover:
                str = "♧";
                break;

            case Card.SuitType.heart:
                str = "♡";
                break;

            case Card.SuitType.diamond:
                str = "♢";
                break;

            case Card.SuitType.spade:
                str = "♤";
                break;

            case Card.SuitType.black:
                str = "黒";
                break;

            case Card.SuitType.red:
                str = "赤";
                break;

            default:
                str = "!?";
                break;
            }
            return(str);
        }
Esempio n. 5
0
        public async Task <Card> GetCard(Card.SuitType suit, Card.ValType val, int gameID)
        {
            Card card = await _Context.Cards.FirstOrDefaultAsync(c => c.Suit == suit && c.Value == val && c.GameID == gameID);

            return(card);
        }