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