Сортировка комбинации карт в C poker

#c #sorting

#c #сортировка

Вопрос:

Я работаю над домашним заданием, которое включает в себя создание упрощенной игры в покер. Я новичок в C , но это для класса, поэтому я здесь, чтобы учиться.

После того, как я раздам вектор руки каждого игрока, как я буду сортировать вектор перед его печатью? Это векторы символов, вызываемые hand1 для игрока 1 и hand2 для игрока 2. Колода также представляет собой вектор символов, но массив рангов представляет собой строку ( 10 для печати числа), а массив мастей — символ (для печати фактических символов). Вместо печати: 8<heart>, 3<club>, A<spade>, 4<spade>, 9 <diamond>, 8<club>, 2<club>, он будет печатать: 2<club>, 3<club>, 4<spade>, 8<heart>, 8<club>, 9 <diamond>, A<spade>.

Надеюсь, этой информации было достаточно. Я могу отправить свой код, если вы хотите на него взглянуть. Нет указателей, нет классов. Я еще не на этом уровне (если только нет другого способа сделать то, что я прошу). Я могу улучшить этот проект в своем следующем классе.

Комментарии:

1. Я видел символ T, используемый в карточных играх вместо 10, если вам действительно нужен один символ на число.

Ответ №1:

Как насчет std::sort .

Сортирует вектор.

 std::sort(hand.begin(), hand.end());
  

Смотрите: http://www.sgi.com/tech/stl/sort.html

Ответ №2:

использование std::sort

http://www.cplusplus.com/reference/algorithm/sort/

Ответ №3:

Идея состояла бы в том, чтобы создать struct для каждой карты:

 struct card {
   char textRepresentation; // 2, 3, A, J
   int  color; // any code..

   int  sortOrder; // a number describing the position in a sorted order
   // you can also include the color here somehow
};
  

Затем вы можете легко отсортировать эти карты..