Beispiel #1
0
        /// <summary>
        /// Перевіряє чи можливий хід після чого робить його відповідною картою відповідного гравця
        /// </summary>
        /// <param name="cards"> Карта якою ходить гравець</param>
        /// <param name="player"> Гравець який ходить</param>
        /// <returns>Повертає true в разі успішності ходу інакше false</returns>
        private bool Move(Card cards, Player player)
        {
            if (!_isSecondMove &&                                                     //Якщо це перша карта за хід
                (((cards.Suid() == _openDeck[CountCardsInOpenDeck - 1].Suid() ||         //Якщо це така ж карта по масті
                cards.Priority() == _openDeck[CountCardsInOpenDeck - 1].Priority() ||      //Або це така ж карту за пріорітетом
                cards.Priority() == 11) &&                                      //Або ж ця карта валет
                _openDeck[CountCardsInOpenDeck - 1].Priority() != 11) ||                     //И якщо остання карта в колоді не валет
                // Якщо ж валет то перевірити чи відповідає загадіній раніше карті іншим гравцем
                ((cards.Priority() == 11 || cards.Suid() == _suitOfJeck) && _openDeck[CountCardsInOpenDeck - 1].Priority() == 11))
            )
            {
                if (cards.Priority() != 6)
                    _isSecondMove = true;
                //if (cards.Priority() == 11)
                //    numbJacks++;

                if (cards.Priority() == 11 && _selectPlayer.Number == 1)
                    _activeChoice = true;

                _openDeck.Add(cards);
                //openDeck[HeadOpDeck] = cards;
                //headOpDeck++;
                for (int i = 0; i < player.Cards.Count; i++)
                {
                    if (player[i] == cards)
                    {
                        player.PopCard(i);
                        break;
                    }
                }

                ReactionOnCards(cards);
                _isToCard = true;
                return true;
            }

            return false;
        }
Beispiel #2
0
        /// <summary>
        /// Перевіряє чи можливо докласти ще одну карту після того як була покладена карта за заданий хід
        /// </summary>
        /// <param name="cards">Карта яку хоче покласти гравець</param>
        /// <param name="player">Гравець який хоче покласти карту</param>
        /// <returns>Повертає true в разі успішності ходу інакше false</returns>
        private bool SecondMove(Card cards, Player player)
        {
            if (_isSecondMove && cards.Priority() == _openDeck[CountCardsInOpenDeck - 1].Priority())
            {
                //if (cards.Priority() == 11)
                //    numbJacks++;
                _openDeck.Add(cards);

                //openDeck[HeadOpDeck] = cards;
                //headOpDeck++;
                for (int i = 0; i < player.Cards.Count; i++)
                {
                    if (player[i] == cards)
                    {
                        player.PopCard(i);
                    }
                }
                ReactionOnCards(cards);
                return true;
            }
            return false;
        }