Итак, я работаю над простой карточной игрой. Сейчас я использую около 4 различных контейнеров Vector<Card>
для хранения карт в палубе, руке, InPlay и Discard. Я собирался начать писать код для перемещения карт из InPlay Vector в Vector Discard, когда это необходимо, и я понял, что могу использовать 2 вектора и перечислить набор состояний карты, чтобы различать, где находятся карты в игровом поле.Должен ли я использовать несколько векторов или состояний Enum
Я думал, что-то вроде:
class Card
{
Enum class CardState
{
InHand,
InPlay,
Discarded
};
//other card class data
};
тогда я мог бы перебирать один vector<Card> InPlay
и проверить против этих флагов. Колода по-прежнему останется собственным контейнером для век.
Будет ли это проще, чем пытаться управлять 3 различными контейнерами на протяжении всей игры?
Спасибо, Cap'n! В случае, если вы не можете сказать, проект, над которым я работаю, - это простой клон Magic, поэтому у меня есть другая ситуация, о которой мне интересно. Если карта находится в игре, она может иметь несколько состояний в этом состоянии (постукивать, вызывать болезнь и т. Д. Я не использую эти точные состояния, просто примеры). Как бы вы порекомендовали что-то подобное? – Prototype958
Используйте список «currentStates». Например: vector currentStates Вы можете добавить вспомогательные методы, например: bool isInState (состояние CardState) –