Проблемма с заполнением массива
Возникла у меня такая проблема.Делается примитивный солитер.Пользуюсь вот таким алгоритмом:
Что имеем
0) Номер карты на поле
1) Положение на поле, координаты Х,У.
2) Ширина и высота карты
3) Масть, соответственно цвет, текстуры
4) Статус карты, перекрывает ли она или ее перекрывают.
5) Массив int,в котором -1,если карта не перекрыта, и номер карты карты которыми данная перекрыта
При расположении карт на поле запоминаю позицию для каждой карты, если ты кладешь карту и она перекрывает другую, то добавляю в массив (5), номер карты или нескольких, которые перекрываешь. После того когда занес номер карты в массив(5), ту карту которую занес ставлю статус(4) что она перекрыта.
Проблема заключается в том,что я не пойму как записать в массив для каждой карты значения тех карт которые ее перекрывают.
Мой ход мысли был примерно таков - беру первую карту и проверяю есть ли у нее пересечения с какой либо другой,если да то записываю номер этой карты(например 2) в массив.потом беру эту карту( 2 ) и проверяю пересекает ли ее какя - нибудь карта,если да ( 3 ),то записываю ее в массив 1 и массив 2.И вот какая незадача а если 1 карту пересекают сразу три или четыре,короче незнаю как организовать эту запись.
Буду очень благодарен за помощь.
Определился бы с сущностями:
1. Карта: масть, ранг.
2. Контейнеры карт:
- колода,
- текущая выборка (1 или 3 карты),
- 4 "дома",
- 7 кортежей.
Брать карты можно только с хвоста (одну или кортеж) и добавлять только в хвост.
Первоначально все карты помещаются в случайном порядке в контейнер "колода". Далее три или одна (в зависимости от типа игры) карты перемещаются в контейнер "выборка".
Далее карта с хвоста "выборки" перемещается либо в хвост одного и кортежей, либо в хвост одного из домов. При этом происходит проверка валидности перемещения, т.е. соответствеие масти и ранга.
Игра считается законченой, если все "дома" полны.
Дело все в том что ты берешь классический солитер,я про него вспомнил только потому что принцип такой же,на самом же деле карты могут валятся хаотичным порядком,мы можем убирать толко парные(валет к валету,дама к даме и тд) причем карты могут браться только если они не перекрыты дргой картой. Примерно так.
Хочется тебе запоминать географическое положение карты, запоминай, сути это не меняет, а влияет только на отрисовку.