Ilya Vasilyev » 16.02.2004 (Пн) 10:20
Я делаю нечто подобное... при чем в друх режимах - с наличием сетки и без нее (знаете, когда надо в школе/вузе сдать кроссворд - там на сетку не смотрят)... суть заключается в следующем:
1. Необходимо как-то хранить то, что получается в процессе строительства - самое простое, что мне пришло в голову - контрол SpreadSheet (Microsoft Office XP WEB Components), или любой грид, поддерживающий сетку с возможностью вставки строки/столбца
2. Пробежаться по сетке - каждое слово (если размещаем слова) пытаться поставить по-вертикали и по-горизонтали, в случае успеха (когда есть хотя бы одно пересечение, а все пересечения удачны - буквы совпали) - записать слово, выкинуть слово из предполагаемого списка, и зайти рекурсивно в функцию установки слова снова.
3. Но это все во-вторых, а во-первых, чтобы были различные варианты - подавать на функцию (не параметром конечно) список, где слова размещены каждый раз по-новому, но строго по алгоритму
4. Когда обнаружен возврат из функции - подсчет: сколько слов было поставлено, сколько пересечений было обнаружено... и тут уже по желанию - сохранить 10 лучших/все схемы для визуального просмотра
Вот такая мысль... я ее почти довел до конца...
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали