Example #1
0
        public void ace_of_spades()
        {
            Card card = new Card("Ace", "Spades");

            Assert.AreEqual("Ace of Spades", card.ToString());
        }
Example #2
0
        public List <CardGroup> Group123(List <CardOnDeck> sortedList)
        {
            Debug.Log("> Group 123");

            List <CardGroup>  groups = new List <CardGroup>();
            List <CardOnDeck> normalCards, okeys;

            ExtractOkeys(sortedList, out normalCards, out okeys);
            Debug.Log("Normal Cards : " + normalCards.Count);
            Debug.Log("Okey Cards : " + okeys.Count);

            for (int i = 0; i < normalCards.Count; i++)
            {
                Card card = normalCards[i].card;
                Debug.Log("for i " + card.ToString());
                int       number     = card.Number;
                CardGroup temp_group = new CardGroup();
                temp_group.members.Add(normalCards[i]);
                int usedOkeys = 0;

                for (int j = 1; j < normalCards.Count; j++)
                {
                    int  jindex = (i + j) % normalCards.Count;
                    Card card2  = normalCards[jindex].card;
                    Debug.Log(" - for j " + card2.ToString());


                    if (card.Color == card2.Color)
                    {
                        if (card2.Number == ((number % 13 + 1) % 13 + 1))
                        {
                            if (okeys.Count > usedOkeys) // if has usable okey cards
                            {
                                Debug.Log(" - using okey " + okeys[usedOkeys].card.ToString());

                                // use okey card
                                number = number % 13 + 1;
                                temp_group.members.Add(okeys[usedOkeys]);
                                if (temp_group.members.Count > 2)
                                {
                                    groups.Add(temp_group.Copy());
                                    Debug.Log(" - - new group");
                                }
                                usedOkeys++;
                            }
                        }


                        if (card2.Number == (number % 13 + 1))
                        {
                            Debug.Log(" - - match " + card2.ToString());

                            number = (number % 13 + 1);

                            temp_group.members.Add(normalCards[jindex]);
                            if (temp_group.members.Count > 2)
                            {
                                groups.Add(temp_group.Copy());
                                Debug.Log(" - - new group");
                            }
                            continue;
                        }

                        if (card2.Number == (number % 13))
                        {
                            continue;
                        }

                        if (okeys.Count > usedOkeys) // if has usable okey cards
                        {
                            Debug.Log(" - using okey " + okeys[usedOkeys].card.ToString());

                            // use okey card
                            number = number % 13 + 1;
                            temp_group.members.Add(okeys[usedOkeys]);
                            if (temp_group.members.Count > 2)
                            {
                                groups.Add(temp_group.Copy());
                                Debug.Log(" - - new group");
                            }
                            usedOkeys++;
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
            return(groups);
        }
Example #3
0
        public void card_without_anything()
        {
            Card card = new Card();

            Assert.AreEqual("Joker", card.ToString());
        }