Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемма с заполнением массива

2.0K
05 апреля 2007 года
BroKeR
163 / / 04.05.2006
Доброго всем времени суток.
Возникла у меня такая проблема.Делается примитивный солитер.Пользуюсь вот таким алгоритмом:
Что имеем
0) Номер карты на поле
1) Положение на поле, координаты Х,У.
2) Ширина и высота карты
3) Масть, соответственно цвет, текстуры
4) Статус карты, перекрывает ли она или ее перекрывают.
5) Массив int,в котором -1,если карта не перекрыта, и номер карты карты которыми данная перекрыта

При расположении карт на поле запоминаю позицию для каждой карты, если ты кладешь карту и она перекрывает другую, то добавляю в массив (5), номер карты или нескольких, которые перекрываешь. После того когда занес номер карты в массив(5), ту карту которую занес ставлю статус(4) что она перекрыта.

Проблема заключается в том,что я не пойму как записать в массив для каждой карты значения тех карт которые ее перекрывают.

Мой ход мысли был примерно таков - беру первую карту и проверяю есть ли у нее пересечения с какой либо другой,если да то записываю номер этой карты(например 2) в массив.потом беру эту карту( 2 ) и проверяю пересекает ли ее какя - нибудь карта,если да ( 3 ),то записываю ее в массив 1 и массив 2.И вот какая незадача а если 1 карту пересекают сразу три или четыре,короче незнаю как организовать эту запись.
Буду очень благодарен за помощь.
3
05 апреля 2007 года
Green
4.8K / / 20.01.2000
Я бы сделал все изначально иначе.
Определился бы с сущностями:
1. Карта: масть, ранг.
2. Контейнеры карт:
- колода,
- текущая выборка (1 или 3 карты),
- 4 "дома",
- 7 кортежей.

Брать карты можно только с хвоста (одну или кортеж) и добавлять только в хвост.

Первоначально все карты помещаются в случайном порядке в контейнер "колода". Далее три или одна (в зависимости от типа игры) карты перемещаются в контейнер "выборка".
Далее карта с хвоста "выборки" перемещается либо в хвост одного и кортежей, либо в хвост одного из домов. При этом происходит проверка валидности перемещения, т.е. соответствеие масти и ранга.

Игра считается законченой, если все "дома" полны.
2.0K
05 апреля 2007 года
BroKeR
163 / / 04.05.2006
Дело все в том что ты берешь классический солитер,я про него вспомнил только потому что принцип такой же,на самом же деле карты могут валятся хаотичным порядком,мы можем убирать толко парные(валет к валету,дама к даме и тд) причем карты могут браться только если они не перекрыты дргой картой. Примерно так.
3
06 апреля 2007 года
Green
4.8K / / 20.01.2000
Если карты перекрыты, то они уже лежат в определенном порядке - одна на другой.
Хочется тебе запоминать географическое положение карты, запоминай, сути это не меняет, а влияет только на отрисовку.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог