Пример #1
0
  /**
   * Returns player's card.
   *
   * @param player who is on turn.
   * @return Card object instance or null.
   */
  public Card getPlayMethodCard(final Player player) {
    final Card attackCard = game.getTrickCards().getAttackCard();
    if (attackCard != null && canHook(player, attackCard.getSuit())) {
      if (player.getCards().hasSuitCard(attackCard.getSuit())) {
        final Card handCard = game.getTrickCards().getHandAttackSuitCard();
        final Card card = player.getCards().findMaxSuitCard(attackCard.getSuit());

        if (card != null && handCard != null) {
          if (isMeterSuitCard(player, card) && card.compareTo(handCard) > 0) {
            return card;
          }

          if (isMaxSuitCardLeft(card, true)) {
            Card maxAboveCard = player.getCards().findMinAboveCard(handCard);
            if (maxAboveCard != null) {
              return maxAboveCard;
            }
          } else {
            if (card.compareTo(handCard) > 0) {
              return card;
            }
          }
        }
      }
    }
    return null;
  }