Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программы для создания кроссвордов из своих слов онлайн: как скачать на русском языке бесплатно? Как в программе составить кроссворд онлайн из своих слов с ответами: инструкция

Программы для создания кроссвордов из своих слов онлайн: как скачать на русском языке бесплатно? Как в программе составить кроссворд онлайн из своих слов с ответами: инструкция

Кроссворды это одна из самых популярных головоломок. Сотни тысяч таких кроссвордов публикуются в нашей стране ежедневно. И это при том, что сегодня все больше любителей таких головоломок предпочитают электронные варианты. А теперь представьте, что кто-то их придумывает. И этим кто-то можете стать вы. Нужно всего лишь немного эрудиции, терпение и свободное время.

Создать кроссворд сегодня не составит большого труда. Это можно сделать с помощью специализированных онлайн ресурсов, компьютерных программ и даже приложений для смартфонов и планшетов. А можно для этой цели использовать обычный тетрадный листок.

Алгоритм формирования кроссвордов

Эта история начинается с публикации «Самый сложный кроссворд, составленный компьютером». В ней приведен один из самых сложных кроссвордов, составленных программой (см. ниже).

Я был уверен, что все кроссворды давным-давно генерируются программно и был несколько удивлен тем, что это может быть проблемой. Замечу, что речь идет именно о «канадских» кроссвордах, в которых каждое слово имеет пересечение с другим словом на каждой букве или очень близких к ним по сложности. В моей работе аналитика, не так много действительно сложных задач, поэтому мне стало интересно попробовать разработать алгоритм, который мог бы это сделать. Результат размышлений, подкрепленный программой для генерации кроссвордов, приводится в этой статье.

Для заполнения кроссворда всегда используется перебор. Мы ставим первое слово, затем все следующие, проверяя, чтобы буквы на пересечениях совпадали с буквами в словах, поставленных ранее. И так, пока все слова не будут поставлены. Казалось бы – нет ничего проще. Однако простой подсчет количества итераций подбора слов для кроссворда средней длины на 50 слов может изменить это мнение. Так, для установки любого слова, кроме первого, при наличии 1 000 слов соответствующей длины в базе и наличия всего одного заполненного ранее слова на пересечении, в среднем понадобится 1 000/33 = 30 итераций (нам, в среднем, нужно будет просмотреть 30 слов, прежде чем нам попадется слово, имеющее нужную букву на позиции заполненного ранее пересечения). При наличии более одного заполненного ранее слова-пересечения, это количество будет резко расти. Простой подсчет показывает, что для заполнения 50 слов, нам нужно выполнить 30^(50-1) итераций. Это миллиарды миллиардов итераций. Даже на современных компьютерах, это потребует дни и месяцы работы. И здесь на первое место выходит уже не собственно перебор, а алгоритм, который позволит сократить время генерации кроссворда на много порядков.

На дорожку…

  • Анализ – создание плана генерации, основным результатом которого является определенная последовательность генерации слов кроссворда и другие данные, которые будут помогать на этапе генерации.
  • Генерация – последовательное заполнение сетки кроссворда словами, методом полного перебора всех возможных вариантов, с учетом данных, полученных на этапе анализа.

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

И последнее. В статье будет опущено все, что касается генерации базы слов для программы. Эта часть «стоила» не менее 50% всего затраченного времени. Сейчас в базе более 158 тыс. слов, из которых более 125 тыс. являются уникальными. База в максимальной степени вычищена программным способом, однако все еще требует к себе внимания в ручном режиме. Я не стал каким либо способом закрывать или шифровать базу – она лежит открытая в текстовом виде и простейшем key-value формате. Вы можете удалить или добавить в ней слова, подкорректировать описания или полностью заменить своей (например, на другом языке).

Начало пути

Первое, что нужно определить – последовательность заполнения слов. Для этого имеются весьма простые и очевидные решения.

Решение № 1: Слова будут генерироваться в последовательности, зависящей в первую очередь, от их длины. Чем длиннее слово, тем больше у него может быть пересечений и тем труднее будет найти слово для установки. Напротив, самые короткие слова, длиной в 2 или 3 буквы, будут иметь минимальное количество пересечений и их максимально удобно подбирать на завершающем этапе генерации. Данное решение используется на этапе анализа.

Решение № 2: Из слов с одинаковой длиной, в первую очередь будут устанавливаться слова с наибольшей сложностью установки. Сложность установки – расчетный параметр, который показывает «насколько сложно будет подобрать значение в это слово» и «насколько большая будет цена ошибки, если слово подобрать не удастся». Понятно, что слова одинаковой длины, например, 5 букв, могут пересекаться как с одним словом, так и сразу с пятью, при этом сложность установки будет совершенно разная. Данное решение используется на этапе анализа.

Читать еще:  Что делать, если игра автоматически сворачивается в Windows 10

Решение № 3: C учетом предыдущих решений, слова у нас расположены в такой последовательности, которая не гарантирует пересечение двух соседних слов между собой. Это означает, что если мы не нашли слово для установки, тогда нужно изменить не предыдущее слово, а одно из ранее установленных слов, которые пересекаются с этим словом и по сути задают для него условия подбора. Логично из всех ранее установленных слов-пересечений, заменить слово, установленное последним, чтобы откатиться на минимальное количество слов генерации. Данное решение используется на этапе генерации.

Фрагменты

Если отследить установку слов в той последовательности, которая была определенна на основании решений № 1 и № 2, можно заметить, что установка некоторых слов образует локально независимые фрагменты. Посмотрите на рисунок ниже.

На рисунке цветами показана последовательность установки первых слов в сетку кроссворда в порядке, соответствующем известному «Каждый охотник желает знать, где сидит фазан». Первым будет установлено слово, помеченное красным. После него – слово, помеченное желтым и т.д. После установки всего 2-х слов в кроссворде образовался локальный фрагмент, помеченный голубым цветом.

  • Фрагмент – группа слов в количестве от 1 слова до 50% от общего количества слов кроссворда, генерация которых никак не зависит от всех остальных, еще не поставленных слов.
  • Стартовое слово – слово, после установки которого образовался фрагмент (на рисунке выше – это слово, выделенное желтым цветом).
  • Первое слово – слово фрагмента, имеющее минимальную очередность установки из всех слов фрагмента.
  • Глубина фрагмента – количество слов, составляющих фрагмент.

Решение № 4: Для каждого устанавливаемого слова будет выполняться поиск фрагментов. Все слова, принадлежащие одному фрагменту будут иметь последовательную очередность установки, начиная от стартового слова, либо от первого слова фрагмента. Данное решение используется на этапе анализа.

  1. Находим фрагменты.
  2. Определяем сложность заполнения фрагмента.
  3. Определяем слово, за которым нужно расположить все слова фрагмента по следующим правилам:
  4. Слова, являющиеся членами фрагментов, устанавливаем друг за другом.
  1. Определяется последовательность генерации слов.
  2. Выполняется подбор и установка слова с учетом ранее установленных слов.
  3. При отсутствии слова для установки, выполняется откат на последнее пересекающееся с ним слово, поиск которого продолжается так, как будто предыдущее его значение не было найдено вовсе.

Шаблоны

Первый вопрос, который приходит в голову – можно ли как-нибудь уменьшить количество откатов? Ведь каждый откат на несколько слов назад может стоить десятки и сотни тысяч итераций. Логически верным шагом становится добавление правил, которые уменьшают количество ошибок установки слов, вроде, не ставить мягкий или твердый знак в клетку, с которой начинается слово и т.д. Если не лезть глубоко, описать большинство этих правил для русского языка довольно просто, но есть проблема – они будут абсолютно бесполезны, например, для английского. Мне же хотелось сделать универсальный алгоритм, не зависящий от языка.

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

Так появилась идея использовать шаблоны, подобные команде LIKE в Transact-SQL. Шаблон – это символьная строка, по которой будет выполняться сравнение слов. Сам шаблон включает буквы и символы-шаблоны. Во время сравнения с шаблоном необходимо, чтобы буквы в точности совпадали с символами, указанными в строке. Символы-шаблоны могут совпадать с произвольными элементами символьной строки.

Решение № 5: Для каждого стартового слова будут рассчитываться шаблоны всех пересекающихся с ним слов. Стартовое слово должно иметь буквы строго из списка в шаблоне, соответствующего позиции буквы пересечения. Данное решение используется на этапе генерации.

  • Шаблон: «___»
  1. Буква № 1: Ё А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
  2. Буква № 2: Ё А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я
  3. Буква № 3: Ё А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я
  • Шаблон: «ДО_»
  1. Буква № 1: Д
  2. Буква № 2: О
  3. Буква № 3: Г К М Н
Читать еще:  Скачать программу ВидеоМАСТЕР 12.0 бесплатно

Акселераторы

Вернемся снова к фрагментам. Посмотрите на рисунок ниже.

В нем серым отмечены клетки слов, установленных ранее. При установке слова, помеченного красным, образуются сразу два фрагмента, отмеченных голубым и фиолетовым цветами.

Если вы посмотрите на фиолетовый фрагмент, то увидите, что он связан со стартовым словом одним единственным пересечением. И это прекрасно! Это дает нам возможность воспользоваться еще одним решением.

  • Акселератор – стартовое слово, имеющее дочерний фрагмент, имеющий с ним одно единственное пересечение. Свое название он получил за свойство ускорять генерацию фрагментов на порядок и более.

Алгоритм использования акселераторов приведен ниже.

  • Выполняется поиск и установка всех слов фрагмента.
  • Если заполнение фрагмента выполнено успешно, то идем дальше, иначе – меняется стартовое слово и процесс заполнения слов фрагмента повторяется.
  • Выполняется поиск и установка слов фрагмента.
  • Если заполнение фрагмента выполнено успешно, то идем дальше, иначе – запоминаем букву, стоящую на пересечении акселератора и слова фрагмента.
  • Меняется слово, установленное на акселераторе, при этом новое слово не должно на упомянутом выше пересечении иметь буквы, которые были запомнены ранее.

Динамическая балансировка сложностью установки

Предыдущие решения, по сути исчерпали те 20% усилий, которые, согласно принципу Парето, дают нам 80% результата. Далее приходится использовать все более сложные подходы, с порой неясными перспективами.

Однажды, при генерации кроссворда, программа выдала такое сообщение: «Время полного перебора: 11 471 день …». Это сообщение появляется только в том случае, если был выполнен перебор всех вариантов для самого первого слова и требуется найти для него новое значение. Программа уже затраченное время просто умножает на оставшееся количество вариантов. Меня это позабавило и заставило задуматься, можно ли это время конвертировать в результат? Идея состоит в том, чтобы обдуманно обрезать некоторые варианты перебора, имеющие минимальную вероятность успеха.

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

Решение № 7: При установке слова, которое пересекают слова с большой сложность установки, запрещено ставить на позицию упомянутого пересечения буквы, частота применения которых в словах пересечениях минимальна. Данное решение используется на этапе генерации.

Если по простому – это решение отбрасывает некоторое количество букв русского алфавита (иногда до 20), повышая шанс сгенерировать сложные участки из слов с чаще используемыми буквами (тут в шоколаде итальянский алфавит с его 21 буквой). В результате мы получим больше вариантов для подбора сложного в установке слова, когда до него дойдет очередь, а значит – больше шанс для успешной генерации всего кроссворда.

Есть и минусы – часть вариантов перебора будет безвозвратно потеряна. Возможно, именно среди них будет тот самый, единственно возможный вариант заполнения сетки. Только Вы можете получить его через 30 лет – нужно лишь немного подождать.

Еще одним минусом является то, что длинные слова, имеющие более 10 пересечений, сильнее всего и блокируются. Это приводит к тому, что программа не может начать генерацию, блокируя первое слово, пока для него не закончатся варианты. Обходится этот минус лишь частично, уменьшением степени блокировки, а значит и эффективности этого решения.

Тестирование

Для систематизации сеток по сложности генерации введен атрибут «Сложность генерации», который рассчитывается на основании количества слов, их длины и количества пересечений. По факту — более менее стабильно результат можно получать при сложности до 600 единиц. Все что выше — на удачу.

Ниже показано среднее время генерации на 10 попытках для нескольких сеток, расположенных в порядке возрастания сложности генерации.

Способ №2: команда «Вставить таблицу»

Команда «Вставить таблицу» находится там же – во вкладке «Вставка», в меню «Таблица».

Кликните на неё — и на экране появится окошко с параметрами вставки.

Чтобы создать таблицу, просто укажите нужное количество столбцов и строк в соответствующих полях. Вы можете либо ввести необходимое значение, либо выбрать его с помощью стрелочек справа от каждого поля.

Читать еще:  Как повернуть текст в Фотошопе

Кроме того, в этом окошке вы можете сразу настроить ширину таблицы: задать точную ширину каждого столбца, определить подбор ширины по содержимому ячеек или распределить ширину столбцов по всей странице.

Когда все параметры заданы, нажмите Ок. Вот, собственно, и всё. Преимущество этого способа в том, что вы можете создать таблицу любого размера.

Вставка надстрочного и подстрочного текста

В последних версиях MS Office есть кнопки в меню, чтобы превратить символы в надстрочные или подстрочные.

Выделите нужный символ и нажмите на кнопку x 2 (сделать символ надстрочным) или x2 (сделать символ подстрочным).

Ещё один вариант: на вкладке «Главная» в группе «Абзац» откройте «Параметры абзаца» с помощью крошечной кнопки в правом нижнем углу.

В открывшемся окне «Шрифт» в группе «Видоизменение» установите флажок «надстрочный» или «подстрочный», в зависимости от того, что вам нужно. Получаемый результат вы можете увидеть в области «Образец». Когда всё готово, нажмите «ОК».

Как можно использовать кроссворд в Excel во время обучения?

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

Как это может выглядеть на практике? Например, изучается какой-то предмет, например, астрономия (наука). Ученики учат новую терминологию, которую затем повторяют с помощью кроссворда Excel (технологии). Здесь же потом можно ученикам рассказать, как создать такой кроссворд. Потом попробовать создать телескоп, используя математические формулы.

Вообще, терминология – один из наиболее сложных аспектов изучения любой дисциплины. Некоторые из них очень сложны для усвоения, а игровой элемент создает дополнительную мотивацию, которая способствует появлению новых нейронных связей в мозгу. Этот механизм в психологии называется положительным подкреплением. Если ребенку интересно, он будет с большей охотой вовлекаться в изучаемый материал.

Чем ребенок старше, тем более разнообразными должны быть задания, терминологический аппарат может больше смещаться в сторону абстрактных понятий, а дифференциация заданий по сложности может быть более выраженной.

Но это только один из большого количества методов использования кроссвордов в обучении. Если говорить более конкретно, то он может применяться для:

  1. Домашних заданий учащимся. У учеников вырабатывается умение самостоятельно разбираться в учебном материале, формулировать вопросы, а также развиваются творческие способности учеников.
  2. Работы непосредственно во время занятия. Кроссворды – это очень удобный метод повторения материала прошлого занятия. Он позволяет быстро систематизировать полученную информацию, на фундаменте которой будет строиться новый материал.

Создание кроссворда в Excel на уроке или в качестве домашнего задания имеет еще одно важное преимущество – таким образом значительно проще выучить определенный материал. Когда ученик самостоятельно придумывает вопросы к конкретному термину, у него в мозгу выстраиваются нейронные связи, которые помогают понять тему и использовать полученные знания в дальнейшем.

Нумерация документа с определенного листа в документе Word

Инструкция не сложнее, чем предыдущая. Кроме того, некоторые шаги имеют схожие алгоритмы. Достаточно выполнить несколько шагов:

1. Первые 4 этапа потребуется выполнить из инструкции, которая представлена выше.

2. Далее найти подпункт «формат номеров страниц», кликает на данный пункт, чтобы открылось следующее автоматическое окно.

3. На всплывающем окне будут присутствовать возможности форматирования страниц.

Как пронумеровать страницы в ворде

4. Все, что потребуется от пользователя, это отметить пункт «начать с» и задать первую страницу, на которой должна присутствовать нумерация;

Как пронумеровать страницы в ворде

5. Остается только кликнуть кнопку ОК, когда выбор уже сделан. Если все шаги выполнены правильно, то номер страницы появится с назначенной самым пользователем.

Как и предыдущая инструкция, нумерация с определенного листа не отнимает много времени и не отличается сложным алгоритмом.

Заключение

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

И ещё, в том случае, если Вам было интересно читать эту статью о том, как сделать титульную страницу в Ворде, тогда Вам может быть интересно узнать о том, что на этом сайте достаточно много интересного. К примеру, здесь есть статьи о таких программах, как Word, Excel, а также о программе PowerPoint.

Ссылка на основную публикацию
Adblock
detector