Если я создаю кроссворд, я бы хотел, например, сохранить заполненные слова в сетке 9 на 9. Я рассмотрел массив 2d, но могу хранить только слова Across, а не слова Down. Даже если каждое слово хранится как объект (указывающий направление), я не буду знать, какие слова пересекаются с какими словами. Может ли кто-нибудь указать мне в правильном направлении?
Хранение слов кроссворда (поперек и вниз)?
comment
Вам не нужно беспокоиться о том, где слова пересекаются. См. ответ @Valentinas.
- person Lee Taylor   schedule 28.02.2013
comment
В случае, если кто-то еще заинтересуется этим вопросом, я бы посоветовал вам сначала подумать об алгоритмах, которые вы хотите запустить в структуре данных, затем выбрать подходящий (эффективный, простой в управлении, отражающий требуемые операции). ) структура данных.
- person Adrian Mouat   schedule 09.10.2013
Ответы (3)
Я бы сохранил начальную точку и направление, а затем просто сохранил их в объекте, т.е.
{'starfish':{'direction':'horizontal','position':[0,4]}, 'ratchet':{'direction':'vertical', 'position':[0,8]}
person
RonnyKnoxville
schedule
28.02.2013
Сохраните направление (вверх/вниз/влево/вправо) и начальные координаты.
e.g.
First
e
c
o
n
third
первый будет помещен слева на 1,0; второй будет вниз на 5,0; третья слева 0,6.
Вы также можете сохранить символы в массиве 2d, этот конкретный пример:
[
[null, 'f','i', 'r', 's', 't'],
[null, null, null, null, 'e', null ],
[null, null, null, null, 'c', null ],
[null, null, null, null, 'o', null ],
[null, null, null, null, 'n', null ],
['t', 'h', 'i', 'r', 'd', null ]
]
Первый способ сохранения дает вам преимущества наличия слов и знания их начальных точек, но он не заставляет его придерживаться формата кроссворда (например, трудно понять, какие символы должны быть одинаковыми и т. д.). Второй способ усиливает это, но труднее разобрать слова. Может быть, объединить два?
person
valentinas
schedule
28.02.2013
Интересная проблема. Ради интереса я бы начал здесь:
class CrosswordItem
{
int startX;
int startY;
string word;
}
Удачи с вашей проблемой!
person
Mike C.
schedule
28.02.2013