close

Вход

Забыли?

вход по аккаунту

код для вставкиСкачать
Программа Filler3d
Автор программы Шамсутдинов Константин Томович.
Быстрое знакомство
Решим задачу Красноухова Владимира Ивановича на составления куба 3x3x3 из следующих
фигурок:
Окно после первого запуска программы:
Если программа запущена не в первый раз, нажимаем «Очистить условия задачи».
Задаем поле в виде куба 3x3x3:
Поле задано, смотрим его в 3-мерном виде. Задаем габариты области рисования.
Добавляем фигурку и рисуем ее в левой области окна.
Все фигурки добавлены. Сохраняем головоломку в файл. Решаем ее.
Головоломка
редактирование.
решена.
Просматриваем
полученные
решения.
Переходим
обратно
в
О программе
Программа 2 или 3-мерного заполнения позволяет редактировать набор фигурок и поле, состоящие
из клеточек или кубиков, и находить все решения - заполнения поля фигурками без пропуска и наложений.
Также реализованы случаи на плоскости с треугольной и шестиугольной клеткой, диагональным делением
квадрата и медиальным делением треугольника. Можно фиксировать ориентацию фигурок (флажок
"Можно поворачивать"), а в случае, если поле состоит из одного слоя (плоское), - исключить переворот
фигурок ("Можно переворачивать"). Фигурки и поле не обязательно должны быть связными (могут
состоять из несвязных между собой клеточек). Исключаются симметричные решения (не учитываются
симметрии, возникающие при наличии нескольких несвязных компонент поля). При этом перестановка
двух фигурок с одинаковой формой (возможно, с разными поворотами) в решении не образует нового
решения. В 3-мерном случае зеркально симметричные решения не отсекаются, если они не совмещаются
поворотом в пространстве.
Добавление фигурок, рисование.
Фигурки и поле рисуются в послойном редакторе, находящимся в левой части окна. Можно задать
габариты области редактирования. Рисуется поле или фигурка, которая выделена, левой кнопкой мыши.
Если клетка, по которой кликнули принадлежит выделенной фигурке, то клетки под указателем мыши
удаляются из фигурки. Если не принадлежит, то, наоборот, - добавляются в фигурку. Если клетка имеет
форму диагонального деления квадрата или медиального деления треугольника, то с нажатым Ctrl можно
сразу рисовать или стирать объемлющий квадрат или треугольник соответственно. В этих же случаях при
клике с нажатым Shift рисуется половинка большой объемлющей клетки - соответственно две или три
клетки. Нарисованное можно подвинуть в любом направлении или сдвинуть в начало координат с
помощью кнопок со стрелками. Также можно задать фигурку или поле в виде параллелепипеда (или
прямоугольника), задав его габариты. Новые фигурки добавляются кнопкой "+" (или Insert с клавиатуры)
или копируются из имеющихся фигурок с сохранением цвета или с новым цветом, двумя следующими за
"+" кнопками.
Выделение фигурок.
Можно выделять несколько фигурок одновременно: клик мышью с нажатой Ctrl - выделение не
подряд, с нажатым Shift - выление подряд.
Если фигурки на поле (режим "Фигурки на поле" или режим просмотра решений), то щелчком
правой кнопкой мыши в послойном редакторе по фигурке можно выделить только эту фигурку.
Если отмечен флажок "Только выделенные", то задача решается только для выделенных фигурок
(выделено ли поле не влияет на условие задачи).
Изменение цвета фигурок.
Можно изменить цвет выделенных фигурок или поля, нажав на нужный цвет левой кнопкой мыши
в ленте цветов, расположенной в нижней части окна. Числом в каждом цвете показывается количество
фигурок этого цвета. Также можно выбрать произвольный цвет, вызвав диалог выбора цвета кнопкой,
расположенной слева от ленты. В этом диалоге первый пользовательский цвет ("Custom colors") является
цветом поля по умолчанию. Кнопкой "Подряд" можно распределить цвета из ленты по фигуркам
стандартным способом. Клик правой кнопкой мыши по цвету в ленте выделяет фигурки этого цвета.
"Фигурки на поле".
Можно редактировать фигурки на поле - флажок "Фигурки на поле". Этот режим можно выбрать
только, когда фигурок еще нет или все они пустые. Также в него можно перейти после нахождения
решения, нажав "Ост. на поле", - используя положение фигурок в проссматриваемом решении.
Шахматная раскраска.
Возможен учет шахматной раскраски для квадратной и треугольной клетки. Поменять черные и
белые клетки местами в редактируемой фигурке можно кнопкой, расположенной под флажком
"Шахматная раскраска".
Пустые клетки, условия.
Если пометить флажок "Пустые клетки", то допускается, чтобы клеток в фигурках было меньше, чем
в поле. Флажок "Условия" делает возможным наложение одного или нескольких из описанных ниже
условий. Они настраиваются в диалоге, вызываемом кнопкой, расположенной справа от флажка.
1) Учет количества и размера связных областей, которые образуют пустые клетки.
2) Фигурки вместе образуют связную (по границам клеточек) фигуру.
3) Фигурки образуют симметричную фигуру. Если не помечен флажок "Без поля", то поле должно
участвовать в симметрии. Решения сортируются по количеству симметричных преобразований - порядку
симметрии (для каждого решения оно указывается справа от стрелок перехода между решениями).
4) Покрывашки. Фигурки автоматически делятся на две группы с равным количеством клеток.
Фигурки первой группы идут вначале. Находятся все возможные формы, умещающиеся на поле, которые
можно заполнить каждой из этих двух групп. Условие антислайда, если оно указано, накладывается только
на первую группу фигурок. Целесообразно, чтобы в первой группе было меньше фигурок, так как при
решении сначала запоминаются все составляемые из них различные формы. Эти формы с решениями
должны умещаться в 1 ГБ памяти. Если во время этой первой стадии нажать на "Стоп", то произойдет
переход во вторую стадию, когда перебираются заполнения второй группой фигурок. В решениях
чередуются заполнения первым и вторым набором каждой возможной формы. Для каждой формы
находится не более одного решения.
Для квадратной или кубической клетки:
5) Выбор решений, с неперемещаемостью фигурок (антислайд), в том числе групповой.
6) Aнтислайд без поля - фигурки не должны смещаться друг относительно друга, подвинуть их
можно только все вместе. При этом поле не ограничивает движение фигурок.
Во всех этих случаях ищутся только те решения, когда фигурки умещаются на поле и располагаются
по клеточкам.
Получение возможных сдвигов фигурок.
В случае квадратной или кубической клетки реализовано получение возможных сдвигов групп
фигурок как с учетом границ поля, так и без. Кнопка для вызова этой операции находится в нижнем ряду
кнопок в левой части окна и доступна в режиме редактирования в случае фигурок на поле или режиме
просмотра решений. Для каждой группы фигурок указываются номера фигурок, входящих в ее состав, а
также одно или несколько возможных направлений сдвига. Группа может состоять из одной фигурки.
Показываются только группы, которые не содержат в себе меньших сдвигаемых групп. Также в случае "Без
поля" не показываются группы, которые состоят из более, чем половины клеток всех участвующих в
рассмотрении фигурок. В нахождении групп участвуют только фигурки, которые сейчас стоят на поле. Это
могут быть не все фигурки, если отмечен флаг "Показ только выделенных".
Сохранение в файл.
Задачу можно сопроводить текстом, который можно отредактировать в окне, вызываемом кнопкой
"T". Если этот текст не пуст, то буква "T" на кнопке становится синей.
По кнопке "Сохранить как" всегда предлагается стандартное имя файла, формируемое из вида
клетки (C - кубик, S - квадрат, T - треугольник, H - шестиугольник, D - диагональное деление квадрата, M медиальное деление треугольника), наличия учета шахматной раскраски (C), ограничения поворотов (F фиксирована ориентация, R - для задач на плоскости - только поворачивать), габаритов поля, количества в
нем клеток, количества фигурок, количества пустых клеток (E) и номера файла, если файлы с таким именем
уже существуют. По кнопке "Сохранить" имя файла сохраняется, если его стандартная часть совпадает с
параметрами головоломки. Имя текущего файла отображается в скобках в заголовке окна.
В файл не сохраняются все полученные решения, но в режиме просмотра решений можно
последовательно сохранить несколько решений - каждое в свой файл, при этом каждое сохранение
эквивалентно нажатию "Ост. на поле" и сохранению уже в режиме редактирования. Отличие в том, что в
последнем случае не удастся сохранить еще одно решение, не решая снова задачу. В случае покрывашек
сохраняется не решение, а условие задачи.
При выходе из программы текущая головоломка сохраняется в файл Current.f3d, находящимся в
папке с программой.
Shift+F11 - выход из программы без сохранения текущей головоломки.
См. подсказки к кнопкам и другим элементам окон.
Справка по 3-мерному показу вызывается кнопкой "?" из окна 3-мерного показа (которое
вызывается кнопкой "3D").
Открытие файла.
Файл можно открыть не только соответствующей кнопкой внутри программы, но и передав путь к
файлу в командной строке (то же самое - перетащить файл с расширением .f3d на иконку приложения
Filler3d.exe), а так же перетащив файл в окно программы. В Windows можно закрепить за расширением .f3d
открывающее файл приложение.
Просмотр решений.
С помощью кнопок со стрелками можно просмотреть все запомненные решения. Запоминается не
более 10000 решений, но считается количество всех решений, пока они умещаются в 1ГБ памяти. В случае
покрывашек (см. Пустые клетки, условия) решения чередуются для первой и второй группы фигурок.
При удержании кнопок со стрелками вправо и влево происходит переход к следующему или
предыдущему решению 10 раз в секунду. Если удерживать кнопку после двойного щелчка, то номер
решения изменяется с такой же частотой, но с ускорением.
Кнопка "Ост. на поле" переводит в режим редактирования и "Фигурки на поле", оставляя фигурки
на поле, как в текущем решении. В случае покрывашек на поле оставляется группа фигурок, которая
показывается в решении и из поля исключаются пустые клетки.
Алгоритм решения.
Сначала определяются одинаковые фигурки и находятся все возможные положения фигурок на
поле. Если поле содержит симметрии, то выбирается фигурка с наименьшим количеством расположений
на поле, и для нее исключаются симметричные расположения для сокращения перебора. В процессе
перебора пусть уже какие-то фигурки поставлены на поле. Берется клетка с минимальным количеством
расположений в ней фигурок. Это количество сравнивается с минимальным количеством расположений
фигурок среди всех типов фигурок (неодинаковых фигурок). Выбирается минимальное и по нему ведется
перебор на следующем шаге. Если одно из этих количеств равно нулю, то ветвь перебора - тупиковая.
Количесвто тупиковых вариантов и время решения отображаются во время решения и после него (см.
подсказки к элементам окна).
Флажок "Другой метод перебора" задает метод перебора вариантов, отличающийся от описанного
выше. В этом методе перебор вариантов по заполнению клетки ведется только если такой вариант один.
Иначе всегда перебираются положения фигурки, для которой возможных положений меньше. Этот метод
иногда оказывается быстрее основного метода, например, при разбиении куба 8x8x8 на набор больших
параллелепипедов или при большом количестве пустых клеток.
Измельчение для случаев диагонального деления квадрата и
медиального деления треугольника.
В этих случаях возможны решения, в которых клетки исходных фигурок не совмещаются с клетками
поля. Зато для в 2 раза более мелкой сетки решение всегда будет по клеткам. Отметьте флажок "Решать
мелко", если нужно находить решения на такой сетке.
3-мерный показ
В 3-мерном показе, если фигурки на поле, то показываются все или только выделенные фигурки в
соответствии с флажком "Показ только выделенных" в основном окне.
Можно выбрать один из двух видов проекции:
1. Изометрическая проекция - прямоугольная проекция, в которой одна из осей проектируется в
вертикальную линию.
2. Наклонная проекция на верхнюю грань - верхняя сторона будет изображаться как в послойном
редакторе, а ось Z будет видна под выбранным наклоном.
Наклон проекции можно изменять мышью в поле изображения, перемещая ее с нажатой левой или
правой кнопкой (нажать нужно внутри изображения). В наклонной проекции можно фиксировать угол
проекции наклонной оси, нажав Ctrl или перемещая правой кнопкой мыши. В изометрической проекции
можно поворачивать только вокруг вертикальной оси (Ctrl или правая кнопка) или только поворачивать
вертикальную ось, не меняя поворота верхней грани (Alt или Shift или правая с левой кнопкой мыши
одновременно).
Можно посмотреть фигуру, образованную пустыми клетками, во время просмотра решений или
если помечен флажок "Фигурки на поле". Для этого должен быть помечен флажок "Показ только
выделенных" в основном окне приложения и флажок "Пустые клетки" в окне 3-мерного показа. Чтобы
другие фигурки не показывались нужно снять с них выделение. Для этого, когда выделена одна фигурка,
нужно кликнуть по ней с нажатым Ctrl.
Пока не исправлен дефект изображения: в некоторых проекциях не прорисовываются отдельные
точки ребер.
Эмуляция клеток, являющихся частями куба
Используя кубическую решетку меньшего размера, можно сэмулировать:
1) диагональные половинки кубика:
, например:
2) пирамидки с вершиной в центре кубика и основанием, являющимся гранью кубика:
, например:
Здесь перекрестия между 6 кубиками оставлены пустыми.
1/--страниц
Пожаловаться на содержимое документа