Головоломка Пентамино

Публикация № 1848125 18.04.23

Задачи пользователя - Игры

Игра головоломка пентамино тетрамино гексамино

Широко известная головоломка, основанная на составлении фигур из составных частей. В данной реализации в качестве фигуры используется прямоугольник, а в качестве составных частей - пентамино, тетрамино или гексамино. Реализованы классические варианты головоломки и вариант со случайной генерацией фигур.

Об игре

Пентамино - фигура, состоящая из пяти квадратов, соединенных сторонами. Является частным случаем полимино. Другие разновидности полимино - тетрамино и гексамино, из, соответственно, четырех и шести квадратов. В процессе игры необходимо набор фигур "уложить" в прямоугольник заданного размера. Сделать это, зачастую, весьма непросто!

 
 Пример игры

Управление:

1. с помощью мыши:

  • "захват" и "освобождение" фигуры - клик мышью в клетку фигуры
  • перемещение - клик в другую клетку поля
  • поворот и отражение фигуры - кнопки командной панели

2. с помощью клавиатуры:

  • "захват" и "освобождение" фигуры - <enter> в выделенной ячейке - клетке фигуры
  • перемещение - <стрелки клавиатуры>
  • поворот фигуры - клавиши <A> и <Z>
  • отражение фигуры - клавиши <S> и <X>

Всего может быть 12 различных фигур пентамино. Из них можно сложить прямоугольники (площадью 60 квадратов): 6×10, 5×12, 4×15 и 3×20. Из полного набора гексамино (35 возможных фигур) или тетрамино (5 фигур) сложить какой-либо прямоугольник нельзя, но это можно сделать, взяв неполный набор, или добавив к набору дополнительные фигуры. Разумеется, прямоугольники можно складывать из произвольного набора фигур, в том числе повторяющихся. В игре реализованы классические головоломки пентамино 6×10, 5×12, 4×15 и 3×20, тетрамино 4×6, а также, самый интересный, пользовательский вариант.

В пользовательском режиме можно выбрать: вид фигуры (тетрамино, пентамино или гексамино), размер поля-прямоугольника (а значит, и количество фигур) и сложность. Сложность определяет возможность использовать повороты и отражения фигур. Набор фигур генерируется случайным образом. 

Генерация фигур

Вот как раз генерация набора фигур - самая интересная и сложная задача. В чем сложность? А в том, что у головоломки обязательно должно быть решение, т.е. все фигуры гарантированно должны поместиться в прямоугольник. Как этого добиться? Ну, во-первых, можно попытаться математически доказать разрешимость головоломки при заданном наборе фигур. Я не знаю как это сделать:), кто захочет - может попробовать. Во-вторых можно написать алгоритм, "решающий" эту задачу, это тоже весьма интересно. Но я пошел по третьему пути - от обратного, т.е. не составлять прямоугольник, а наоборот, случайным образом разбить исходный прямоугольник на составные части заданного размера. Расскажу поподробнее.

1. Генерация начинается со случайной расстановки "затравок" - по одной клетке от каждой фигуры:

2. Далее фигуры начинают "расти", к фигурам добавляются новые клетки из числа еще не занятых:

3. Возможна ситуация, когда фигуре расти некуда - все соседние клетки уже заняты. Например, для красной фигуры:

4. Единственный выход - красная должна "отобрать" клетку у другой фигуры. Какую угодно отбирать нельзя. Знаком "+" помечены "критические" клетки - те, без которых фигура разваливается на несвязанные части. Их трогать запрещено.

Здесь красная фигура "отобрала" клетку у оранжевой, а оранжевая - у красной.

5. Далее красная фигура "отбирает" клетку у синей, и синяя восстанавливается до нужного размера.

 

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

На первой картинке желтая и синяя фигуры не смогут "вырваться" с нижнего края. На второй картинке ни одна из фигур не сможет занять свободные, белые клетки. 

Решением этой проблемы служит автоматический перезапуск алгоритма после некоторого числа итераций, например 100.

 

Головоломка тестировалась в тонком клиенте 8.3.22.1709.

Как всегда, приветствуются замечания / дополнения / комментарии.

 

    

 
 Некоторые из прочих моих публикаций  

   

Скачать файлы

Наименование Файл Версия Размер
Головоломка Пентамино:

.erf 21,92Kb
1
.erf 21,92Kb 1 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 625 18.04.23 18:50 Сейчас в теме
Норм! Но с визуализацией в 1с всё печально.
2. Alxby 1061 18.04.23 19:23 Сейчас в теме
(1)Это точно. Проблемы в общем-то две: мало возможностей графического изображения элементов (спрайтов и т.п.) и низкая скорость отрисовки - сделать хотя бы PacMana только средствами 1С не выйдет.
mrChOP93; aSHA-1; +2 Ответить
3. Adrenal1n 3 24.04.23 13:17 Сейчас в теме
(2) На самом деле сделать пакмэна не получится в первую очередь потому что нет игрового шага, другим языком нет таймера. Будь таймер - можно было на табличном документе перемещать картинку и получать анимацию. Обработчик ожидания, как самый похожий механизм все равно не подходит, потому что работает только во время бездействия системы. Другой вопрос, что это все (включая саму игру) на самом деле и не нужно в реальном мире и делается просто ради забавы.
4. Alxby 1061 24.04.23 15:36 Сейчас в теме
(3)Это тоже. Но я имел в виду именно скорость отрисовки - в пакмане персонажи двигаются с разными скоростями, т.е. скорость отрисовки должна позволить эту разницу увидеть. Я пробовал в табличном документе просто перемещать спрайт, даже без обработчика ожидания, - результат неудовлетворительный. А если говорить о забавах - так они - существенная часть реального мира, игроделы там делают реальные деньги))).
Оставьте свое сообщение

См. также

Пасьянс Марии Стюарт (пасьянс Медичи) - попробуй изменить свою судьбу

Игры Платформа 1С v8.3 Россия Абонемент ($m)

Игра - пасьянс Марии Стюарт. Есть возможность создавать свои расклады, обмениваться раскладами и менять картинки карт.

1 стартмани

05.05.2023    1663    1    sandr13    0    

7

Тетрис

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Когда под рукой только 1С и как-то нужно скоротать время, можно поиграть в Тетрис.

1 стартмани

29.04.2023    1978    5    user1693438    0    

9

Игра Sumplete

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Разминка для мозга на устный счет.

1 стартмани

27.03.2023    1461    0    kyzma-kyzmi4    6    

4

"Жизнь" Конвея и другие клеточные автоматы

Игры Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Я думаю, нет нужды представлять математика Джона Конвея и его "Game of Life" - игру "Жизнь". Предлагаю вспомнить эту игру, а также другие "жизне"-подобные клеточные автоматы. К статье приложен файл с реализацией этой игры.

1 стартмани

22.03.2023    3357    5    Alxby    16    

17

Игра Жук. Заставь его бегать как можно дольше!

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расставьте на поле стены так, чтобы жук ходил по полю как можно дольше. Делитесь результатом с друзьями.

1 стартмани

10.03.2023    2596    2    kyzma-kyzmi4    2    

12

Игра "Только вперед!" + мини-библиотека для игр по сети

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

01.03.2023    3636    2    Alxby    9    

20

Карточная игра "Подкидной дурак"

Игры Платформа 1С v8.3 Абонемент ($m)

Продолжаем тему игр на платформе 1С:Предприятие, классический "Подкидной дурак".

1 стартмани

20.02.2023    1676    4    oldcopy    6    

9

Игра "Змейка" на 1С (управляемые формы)

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Игра Змейка, сделанная на 1С. В игре 7 уровней, но игра сделана так, что любой разработчик без проблем сможет нарисовать любую карту на свой вкус, для этого достаточно добавить макет и закрасить красным цветом границы и препятствия!

1 стартмани

27.01.2023    4343    15    APTEM_SLV    18    

18

Девятка (Девятки) - карточная игра для платформы 1С на управляемых формах с открытым кодом

Игры Платформа 1С v8.3 Управляемые формы Абонемент ($m)

Популярная карточная игра Девятка (Девятки, Domino, Spoof, Fan Tan, Parliament, Sevens) для любой 1С конфигурации (даже абсолютно пустой) для любой версии платформы 8, поддерживающей управляемые формы(тонкий клиент, веб-клиент).

1 стартмани

25.01.2023    2014    1    GODCRM    3    

9

Игра "Девятнадцать"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

19.01.2023    3592    11    Alxby    40    

28

Игра Балда (одномерный вариант)

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Одномерный или "устный" вариант игры Балда.

1 стартмани

05.12.2022    3002    2    Alexei_Siva    1    

13

Игра "Пять букв"

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

22.11.2022    2063    1    Pim    2    

3

Игра "Slime 600"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Игра по типу камень-ножницы-бумага. Сложность: 1/10.

1 стартмани

09.11.2022    2031    0    player69871    4    

4

Игра-головоломка 5 Букв (Wordle русский аналог)

Игры Платформа 1С v8.3 Абонемент ($m)

Игра-головоломка 5 Букв (Wordle русский аналог). Поможет развить словарный запас.

1 стартмани

20.06.2022    3666    2    o.kovalev    0    

3

Карточная игра "Дурак"

Игры Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

07.06.2022    6381    19    user676027_svikator    16    

46

Помощь в игре 5 Букв от Тинькофф банка

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Хотите выиграть в эту игру? Поможет эта обработка.

1 стартмани

02.06.2022    5378    2    o.kovalev    13    

5

Игра СУДОКУ 8.3. ОФ, УФ + солвер (решатель)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка "Судоку" для прокачки скилла и просто тем, кто искал алгоритм DFS на 1С как и я. Обычные и управляемые формы

1 стартмани

08.02.2022    4673    5    maximus_2712    5    

4

Ханойские башни

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Решение головоломки "Ханойская башня" с визуализацией в среде 1С.

5 стартмани

23.12.2019    10508    3    13vap    0    

7

Блэк Джек

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Блэк джек, написанный на платформе 1С 8.2 (обычные формы).

1 стартмани

07.10.2019    10365    1    Azamatex    2    

5

Игра "Логика"

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Старая советская «Логика» для 1С УФ. Угадайте комбинацию цветов, загаданную компьютером.

1 стартмани

13.06.2019    12356    2    legenda-nsh    0    

4

Игра в кости "1000" (сетевая)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Аналог игры в кости 1000 (классика). Работает на управляемом приложении, любой конфигурации и без неё. Тестировал на платформе 1С:Предприятие 8.3 (8.3.10.2667) и выше.

1 стартмани

07.05.2019    18564    2    APTEM_SLV    5    

3

Игра "Арканоид" (Javascript фреймворк Phaser). HTML 5 Сanvas + WebGL. Управляемые формы (ТОНКИЙ, ТОЛСТЫЙ клиент), Обычные формы

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Общеизвестная игра "Арканоид", доступная для запуска в 1с. Выполнена в виде обработки, запускаемой из папки, в которой расположены файлы проекта (html, js файла и картинки) Любые конфигурации на обычных формах, управляемых формах (Тонкий + Толстый клиент). УПП, БП 2.0, 3.0. После открытия обработки нажимаем мышью на область экрана игры, точнее, нажимаем на кнопку "СТАРТ" (области игры). Начинается игра. Управление мышью.

1 стартмани

04.05.2019    12966    8    pvlunegov    2    

7

Игра Змейка с автопилотом

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Игра Змейка с автопилотом реализована в парадигме автоматного программирования.

1 стартмани

23.04.2019    12973    2    RonX01    17    

14

Логическая игра "Камушки"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Логическая игра.

1 стартмани

05.04.2019    11095    0    ranis888    5    

4

Розыгрыш к 1 апреля (№2) [Расширение] УТ11

Игры Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Меняем язык надписей на формах для пользователя с помощью сервиса яндекс-переводчик.

1 стартмани

26.03.2019    11005    5    noprogrammer    2    

8

Розыгрыш к 1 апреля [Расширение]

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Небольшой розыгрыш к 1 апреля.

1 стартмани

19.03.2019    10893    4    noprogrammer    13    

7

Magic 8 ball (Магический шар 8)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Mystic 8 ball, шар судьбы, шар вопросов и ответов, шар предсказаний. Помогает в принятии важных решений

1 стартмани

13.03.2019    12814    7    Смешной 1С    3    

12

Конфигурация-игра "Сто к одному" (1С + html + js + css)

Игры Платформа 1С v8.3 Россия Абонемент ($m)

Конфигурация/база для игры в "Сто к одному" с архитектурой "Ведущий - игровое поле". Конфигурация/база используется для всего цикла игры: 1. Хранение вопросов/ответов по типам игры (Простая, Двойная, Тройная, Игра наоборот и Большая игра); 2. Управление игрой (роль ведущего) - заполнение имён команд, формирование набора вопросов, запуск раундов, выполнение действий на игровом поле, завершение приложения игрового поля; 3. Игровое поле (роль игровое поле) - выполнение действий команд ведущего. Платформа: 8.3.12.1567

1 стартмани

25.02.2019    13769    7    Rabot    4    

10

Решение судоку

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

07.02.2019    11863    5    dobrodeev    4    

4

Игра пасьянс (домино) "Пирамида"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Играть в домино и раскладывать пасьянс или собирать пасьянс фишками от домино – выбирайте, как вам больше нравится. Работает на любой конфигурации, даже без конфигурации. Тестировал на платформе 1С 8.3 (8.3.13.1513), конфигурация Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.8.137).

1 стартмани

20.12.2018    17336    1    APTEM_SLV    4    

2

Инструмент для проведения мероприятия Secret Santa (или Секретный Дед Мороз)

Игры Платформа 1С v8.3 Абонемент ($m)

Данная конфигурация поможет Вам провести мероприятие "Секретный санта". Причем абсолютно анонимно.

1 стартмани

12.12.2018    11222    1    EXAN    2    

3

Игра "Бродяга"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Полноценный рогалик на 1С (обычные формы, платформа не ниже 8.2.19, для любого типа платформы).

1 стартмани

15.11.2018    12027    7    Caliban    14    

11

Пятнашки

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Игра "Пятнашки" на управляемых формах.

14.11.2018    11199    0    supermen    0    

4

Игра "Подземелье" (HTML5 canvas + javascript). Управляемые + Обычные формы

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Простейшая игра на HTML5 + canvas + javascript. Управляемые + Обычные формы. Запуск во всех конфигурациях, во всех видах интерфейсов (Упр. формы Такси, упр. формы во вкладках, обычные формы). В 1С используется встроенный объект ПолеHTMLДокумента. УПРАВЛЕНИЕ ПЕРСОНАЖЕМ с клавиатуры (клавиши движения WASD). Персонаж двигается, собирает ключи, открывает двери.

1 стартмани

13.08.2018    19104    20    pvlunegov    21    

23

Морской бой

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Игра-обработка для 1С, Морской бой

1 стартмани

23.07.2018    12538    6    tbkvpvl    4    

4

Тетрис

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка-игра для 1С, тетрис

1 стартмани

23.07.2018    12920    19    tbkvpvl    2    

3

Сколько лепестков у розы?

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Сколько лепестков у розы? Простая игра, смысл которой заключается в том, чтобы угадать (понять логику), сколько лепестков у розы.

1 стартмани

03.07.2018    11788    0    Denis_CFO    0    

4

Игра-головоломка "Лейцвет" (1С:Предприятие 8.3), управляемая форма для всех типов клиентов

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Увлекательная головоломка, где придется применить логику, чуткое зрительное восприятие и пройти 65 уровней различной сложности.

1 стартмани

23.05.2018    12010    1    bobank    0    

2

Игра "2048" (для 1С:Предприятие 8.3), управляемая форма для всех типов клиентов

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Один из ярких представителей игр - "убийц" времени. Позволяет расслабиться, отдохнуть от мозговой деятельности и хорошо провести время.

1 стартмани

02.04.2018    14590    7    bobank    3    

3