Как отсортировать NSMutableArray игральных карт - PullRequest
1 голос
/ 05 апреля 2011

У меня есть NSMutableArrary, с изображением игральных карт вроде:

  1. 01-13 карты - пики,
  2. 14-26 - это Сердца,
  3. 27-39 - Бриллианты, а
  4. 40-52 Клубы.

Я сортирую по цвету, используя

[CopyArraryForShorting sortUsingSelector:@selector(caseInsensitiveCompare:)];

этот шнур, но мне не удалось отсортировать его по числу мудрых. Так что, скажите, пожалуйста, как его отсортировать

arrayPlayerCard=[NSArray arrayWithObjects:[UIImage imageNamed:@"01.png"],
                                          [UIImage imageNamed:@"02.png"],
                        [UIImage imageNamed:@"03.png"],
                                          [UIImage imageNamed:@"04.png"],
                                          [UIImage imageNamed:@"05.png"],
                  [UIImage imageNamed:@"06.png"],
                                          [UIImage imageNamed:@"07.png"],
                                          [UIImage imageNamed:@"08.png"],................................................,nil]; 

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Я бы создал собственный класс. Что-то вроде:

card.h

typedef enum {
    CardSuitSpade,
    CardSuitHeart,
    CardSuitClub,
    CardSuitDiamonds
}

@interface Card : NSObject {
    CardSuit    _suit;
    NSUInteger  _value;
}

- (id)initWithSuit:(CardSuit)suit andValue:(NSUInteger)value;

Реализация этого класса будет делать следующее:

  1. реализовать инициализатор initWithSuit:andValue:
  2. подтвердите, что значение карты находится в диапазоне от 0,12 (туз до короля), когда значение установлено, и если не установлено,
  3. реализовать компаратор для сравнения двух карт и вернуть соответствующее значение сравнения

Тогда вы можете иметь NSArray полный карт и легко сортировать его. Вы также можете создавать методы перетасовки колоды и т. Д. Развлекайтесь, создавая карточную игру.

0 голосов
/ 05 апреля 2011

Создайте пользовательский класс или поместите данные в NSDictionary. Вы не можете сортировать изображения (по их названию), но вы можете сортировать по строкам.

arrayPlayerCard=[NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"01", @"name", [UIImage imageNamed:@"01.png"], @"image", nil], ...

затем сортируйте, используя NSSortDescriptor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...