У меня вопрос больше о стиле, чем о реализации. Я работаю над покерным приложением. У него есть класс, в котором хранятся все необходимые данные, например, пять карточек. Существует также вторая структура, которая моделирует FigureAnalyzer — фрагмент кода, определяющий, содержит ли рука флеш, две пары или фулл. В целом все работает нормально. Но это более уродливо, чем моя бывшая девушка.
Это образец, определяющий комбинацию рук:
@Override
public int getFigureStrength(IHand hand) {
/*
* analyze all possible pairs, triples, etc.
*/
MultipleCardAnalyzer.anayzeMultipleCards(hand, figureList);
hand.setFigureAnalyzer(this);
if (isPoker()) {
if (isRoyalPoker())
return 10;
return 9;
}
else if (isFourOfAKind())
return 8;
else if (isFull())
return 7;
else if (isFlush())
return 6;
else if (isStraight())
return 5;
else if (areThreeOfAKind())
return 4;
else if (areTwoPairs())
return 3;
else if (isPair())
return 2;
else
return 1;
}
Числа полезны, когда дело доходит до сравнения двух рук. Но... это просто ужасно. Может ли кто-нибудь указать мне или просто предложить, как я могу сделать его более красивым?