#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
Ответ №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
};
Затем вы можете легко отсортировать эти карты..