Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 392

•  TDictionary Custom Sort  5 614

•  Fast Watermark Sources  5 368

•  3D Designer  7 799

•  Sik Screen Capture  5 664

•  Patch Maker  6 155

•  Айболит (remote control)  6 168

•  ListBox Drag & Drop  5 049

•  Доска для игры Реверси  93 966

•  Графические эффекты  6 335

•  Рисование по маске  5 385

•  Перетаскивание изображений  4 563

•  Canvas Drawing  4 931

•  Рисование Луны  4 673

•  Поворот изображения  4 213

•  Рисование стержней  2 968

•  Paint on Shape  2 202

•  Генератор кроссвордов  3 048

•  Головоломка Paletto  2 396

•  Теорема Монжа об окружностях  3 175

 

 

Каталог исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

HabLance - биржа фриланса

 

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Генератор кроссвордов : .

 

Delphi - Программа для генерации кроссворда случайным образом из заданного списка слов

Исходник программы, показывающей пример генерации кроссвордов случайным образом из заданного списка слов.

Программа пытается создать головоломку с указанным количеством слов в указанном диапазоне длин слов на поле указанного размера. Если сгенерированное количество в кроссворде слов меньше желаемого, нажмите кнопку «Генерировать», чтобы повторить попытку заново. В отличие от коммерческих кроссвордов, здесь все генерируемые слова пересекаются только одним словом, идущим в перпендикулярном направлении. Пример также не генерирует подсказки, не нумерует слова и не распечатывает получившуюся головоломку на принтере, поэтому для создания настоящего кроссворда потребуется гораздо больше работы.

Примечания к исходнику

При запуске генерации загружется список слов Words из файла с именем Small.txt, который затем перемешивается случайным образом. Это позволяет выбирать первое подходящее неиспользуемое слово при поиске (процедура LoadList).

Слова, которые были добавлены в кросворд, хранятся в списке строк с именем UsedWords. Объект TUsed, определяющий начальное местоположение и направление слова в головоломке, связан с каждой записью списка.

Функция GetNextWord - это рекурсивная процедура, которая определяет позицию для размещения следующего слова. Горизонтальные и вертикальные слова по возможности генерируются попеременно. Выполнение процедуры останавливается, когда запрошенное количество слов было сгенерировано или больше не найдено слов, подходящих для их размещения в любом направлении. Доска - это двухмерный массив символов, содержащий буквы. Проверка местоположения упрощается за счет создания одинарной границы по всему периметру доски, так что плата N x N фактически представляет собой (N + 2) x (N + 2) ячеек. GetNextWord обрабатывает список UsedWords снизу вверх, ища слова, идущие в другом направлении от слова, которое мы пытаемся добавить. Когда он его находит, он ищет позицию буквы в этом слове, где мы могли бы расширить слово в любом направлении, не примыкая к другому слову. Затем мы вычисляем диапазон, в котором новое слово может расширить, и вызываем функцию FindAWord, передавая ей максимальную длину слова, а также значение и позицию пересекающейся буквы. FindAWord ищет в словах слово, которое соответствует заданным критериям и отсутствует в списке «Используемые слова». Если он находит слово и передает его обратно, GetNextWord вызывает AddWord, чтобы добавить слово в кроссворд и в список UsedWords и затем обновить визуальное содержимое нашей головоломки.

Просмотры: 3 048
Дата: 12.07.2021, Автор: Gary Darby
Скачивания: 62

Комментарии пользователей:
luiso
05 августа 2021
Merci pour permettre de voir cette source
   

Написать сообщение:

 

Скачать (55 Кб)     Регистрация >>


 

Похожие исходники


Календарь генератор

Генератор текстур

Генератор сигнала

TextureGen (генератор текстур)

 

Генератор лабиринтов

PassGen генератор паролей

Генератор импульсов

Генератор лабиринта

 

 

© 2004-2025 "DS"

Соглашение пользователя / Реклама / Карта сайта             Created by BrokenByte Software