2017-01-06 2 views
0

Я пытаюсь запрограммировать приложение для iPhone, которое создаст карточный набор из 10 карт.iPhone Card Game Deck Generator

Общая колода включает около 100 карт с различными свойствами: Каждая карта имеет имя, костюм и стоимость. Для примера:

card.name = "Test" 
card.cost = 2 
card.suit = "BasicSet" 

Давайте предположим, что есть 4 "Наборы" * 20 карт каждая. Я хочу, чтобы пользователь мог сам выбрать костюм, потому что большинство костюмов поступают из наборов расширений.

Чтобы сделать его более сбалансированным, я также определяю максимальное и минимальное количество карт с определенной стоимостью (стоимость от 2 до 6).

В конце будет 2 функции. Одна функция, которая выбирает все действующие карты (из доступных карточных костюмов) и другую, которая выбирает 10 карт в случайном порядке (с учетом стоимости).

Что является самым простым способом реализации карт? Определение класса card и реализация 100 карт? Или создать 3 массива с именем, стоимостью и происхождением, где одна карта имеет тот же индекс во всех трех массивах?

Помощь была бы оценена?

EDIT:
Каждый костюм содержит уникальные карты. Поэтому, если мои костюмы - бриллиант, лопата и т. Д., Там будет только бриллиантовый король, но не королевский король. Просто пример того, как это может выглядеть следующим образом:

Suit Basic {
имя = Village, стоимость = 2
имя = Город, стоимость = 3
имя = NewYork, стоимость = 6
}

костюм Advanced {
имя = Tree, стоимость = 4
имя = лес, стоимость = 5
}

Suit Special {
имя = Коктейль, стоимость = 2
имя = OrangeJuice, стоимость = 4
}

+1

Вот реализация Карты с использованием структуры http://stackoverflow.com/questions/24109691/add-a-method-to-card-that-creates-a-full-deck-of-cards-with-one -card-of-each-co – user12345625

+0

Большое спасибо. Проблема в том, что существует 100 карт с 100 именами, поэтому использование 'struct' и' for-loops' для создания карт займет много времени. См. Edit – Narusan

+1

. Как хранить карты как JSON? http://stackoverflow.com/a/26777229/6469239 – user12345625

ответ

4

Один класс Card может хранить всю необходимую информацию и функции для основных операций. Когда класс Card готов, вы можете создавать объекты этого класса с вашими данными, обработанными с plist или любым другим форматом. На самом деле не обязательно записывать свои данные внутри приложения.

+2

Вот как это сделать, старайтесь иметь как можно меньше данных жестко. Вместо этого используйте среднюю цель, созданную для хранения. Примерами являются 'plist', как указано выше,' XML' или 'JSON'.Затем вы можете легко обновить эти данные с помощью эфирных обновлений, чтобы настроить игровой процесс или разблокировать новые карты. –

+0

Спасибо вам большое! – Narusan