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

Публикация № 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
3
.erf 21,92Kb 3 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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)Это тоже. Но я имел в виду именно скорость отрисовки - в пакмане персонажи двигаются с разными скоростями, т.е. скорость отрисовки должна позволить эту разницу увидеть. Я пробовал в табличном документе просто перемещать спрайт, даже без обработчика ожидания, - результат неудовлетворительный. А если говорить о забавах - так они - существенная часть реального мира, игроделы там делают реальные деньги))).
5. leosoft 161 29.05.23 13:13 Сейчас в теме
Здравствуйте! У меня почему-то не активны все кнопки (поворот и далее).
Активна только новая игра.
6. leosoft 161 29.05.23 13:17 Сейчас в теме
(5) Включил вариант пентамимо - появились! Интересная игрушка, спасибо!
8. Alxby 1061 29.05.23 19:12 Сейчас в теме
(5) Возможность поворота зависит от сложности - с поворотами сложнее.
7. leosoft 161 29.05.23 13:45 Сейчас в теме
А если случайно куда-то переместил фигурку - есть кнопка или горячая клавиша "отката"?
9. Alxby 1061 29.05.23 19:14 Сейчас в теме
(7)Нет, да она и не нужна. В любой момент фигуру можно переместить обратно. Это же не шашки/шахматы - сходил не туда - и всё, мат.
Оставьте свое сообщение

См. также

Плоский "Кубик Рубика"

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

Вы можете собрать кубик Рубика? Я - только с помощью инструкции:). Попробуйте справиться с его плоским аналогом.

1 стартмани

сегодня в 12:30    579    3    Alxby    2    

5

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

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

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

1 стартмани

05.05.2023    1677    1    sandr13    0    

7

Тетрис

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

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

1 стартмани

29.04.2023    2001    5    user1693438    0    

9

Игра Sumplete

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

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

1 стартмани

27.03.2023    1490    0    kyzma-kyzmi4    6    

4

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

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

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

1 стартмани

22.03.2023    3406    6    Alxby    16    

17

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

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

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

1 стартмани

10.03.2023    2619    2    kyzma-kyzmi4    2    

12

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

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

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

1 стартмани

01.03.2023    3672    2    Alxby    9    

20

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

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

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

1 стартмани

20.02.2023    1697    4    oldcopy    6    

9

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

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

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

1 стартмани

27.01.2023    4367    15    APTEM_SLV    18    

18

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

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

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

1 стартмани

25.01.2023    2027    1    GODCRM    3    

9

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

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

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

1 стартмани

19.01.2023    3616    11    Alxby    40    

28

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

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

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

1 стартмани

05.12.2022    3022    2    Alexei_Siva    1    

14

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

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

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

1 стартмани

22.11.2022    2086    1    Pim    2    

3

Игра "Slime 600"

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

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

1 стартмани

09.11.2022    2054    0    player69871    4    

4

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

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

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

1 стартмани

20.06.2022    3702    2    o.kovalev    0    

3

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

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

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

1 стартмани

07.06.2022    6408    19    user676027_svikator    16    

46

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

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

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

1 стартмани

02.06.2022    5399    2    o.kovalev    13    

5

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

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

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

1 стартмани

08.02.2022    4698    5    maximus_2712    5    

4

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

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

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

5 стартмани

23.12.2019    10547    3    13vap    0    

7

Блэк Джек

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

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

1 стартмани

07.10.2019    10398    1    Azamatex    2    

5

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

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

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

1 стартмани

13.06.2019    12392    2    legenda-nsh    0    

4

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

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

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

1 стартмани

07.05.2019    18610    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    12992    8    pvlunegov    2    

7

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

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

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

1 стартмани

23.04.2019    13011    2    RonX01    17    

14

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

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

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

1 стартмани

05.04.2019    11124    0    ranis888    5    

4

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

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

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

1 стартмани

26.03.2019    11034    5    noprogrammer    2    

8

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

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

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

1 стартмани

19.03.2019    10921    4    noprogrammer    13    

7

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

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

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

1 стартмани

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

12

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

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

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

1 стартмани

25.02.2019    13796    7    Rabot    4    

10

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

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

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

1 стартмани

07.02.2019    11901    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    17371    1    APTEM_SLV    4    

2

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

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

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

1 стартмани

12.12.2018    11251    1    EXAN    2    

3

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

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

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

1 стартмани

15.11.2018    12052    7    Caliban    14    

11

Пятнашки

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

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

14.11.2018    11232    0    supermen    0    

4

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

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

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

1 стартмани

13.08.2018    19148    20    pvlunegov    21    

23

Морской бой

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

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

1 стартмани

23.07.2018    12569    6    tbkvpvl    4    

4

Тетрис

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

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

1 стартмани

23.07.2018    12956    19    tbkvpvl    2    

3

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

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

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

1 стартмани

03.07.2018    11823    0    Denis_CFO    0    

4

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

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

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

1 стартмани

23.05.2018    12049    1    bobank    0    

2