Моделирование гомоморфизма с наследованием

Я хочу моделировать покерные руки. Математическое обоснование и получение его в c ++ довольно безумно.

Стандартная колода из 52 карт позволяет вам составить 1326 комбинаций из двух карт. Однако можно разбить эти карты на 169 категорий, которые содержат изоморфные руки: пары (например, TT), масти (AsKs) и несовместимые (AcKd). Это подмножество обычного агностического покерного языка для описания набора покерных рук (TT +, 22-55, A9s + и т. Д.)

Что ж, моя проблема состоит в том, чтобы смоделировать гомоморфизм между 169 руками и 1326 руками через наследование. Imho идентификатор Hand1326, полученный из Hand169. Следовательно, классы выглядят как

struct Hand169 {
int rank1, rank2;
//private:
//bool suited;
};

struct Hand1326 : Hand169 {
int suit1, suit2;
};

Но теперь проблема в том, что Hand169 должен иметь информацию о пригодности (bool suit), который был бы избыточен в Hand1326, потому что suit1 а также suit2 безоговорочно предлагает эту информацию. Информация о паре или нет подразумевается через корыто rank1 а также rank2,

Есть ли лучший способ смоделировать это, без избыточности?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]