{"schemaVersion":1,"record":{"key":"mechanic/puzzle--family-programming","type":"mechanic","id":"puzzle--family-programming","lang":"ru","title":"Алгоритмы и программирование","summary":"Игрок создаёт процедуру, которая решает задачу в заданной модели исполнения.","updatedAt":"2026-10-22","status":"active","url":"https://gamemechanics.pro/ru/knowledge/mechanic/puzzle--family-programming/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/mechanic/puzzle--family-programming.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/mechanic/puzzle--family-programming.md","aliases":[],"tags":["Головоломки","Каталог механик"],"sourceIds":["source-2fb392d4831688b7"],"sources":[{"id":"source-2fb392d4831688b7","title":"Human Resource Machine","url":"https://store.steampowered.com/app/375820/","verifiedAt":null}],"sections":[{"id":"principle","title":"Как работает","body":"Создавать процедуру, которая решает задачу в заданной модели исполнения."},{"id":"variants","title":"Варианты","body":"### Варианты и применение\n\n<a id=\"family-programming-variants\"></a>\n\n- Последовательность команд. Определение: Составить программу из элементарных действий до её запуска. Условный пример: Провести робота по маршруту командами. <a id=\"variant-command-sequence\"></a>\n- Повторяемый блок. Определение: Использовать цикл вместо развёрнутой последовательности. Условный пример: Описать обход повторяющихся колонн одним блоком. <a id=\"variant-loop-program\"></a>\n- Условное выполнение. Определение: Выбирать действия по показаниям датчиков или свойствам входа. Условный пример: Поворачивать только перед красной клеткой. <a id=\"variant-branch-program\"></a>\n- Подпрограммы. Определение: Разложить решение на вызываемые части с ограничением размера программы. Условный пример: Вынести повторяющийся подъём в отдельную процедуру. <a id=\"variant-subroutine\"></a>\n- Рекурсивная процедура. Определение: Построить решение через повторный вызов той же операции для меньшей или вложенной задачи. Условный пример: Обойти дерево неизвестной глубины. <a id=\"variant-recursive-program\"></a>\n- Регистры и ограниченная память. Определение: Преобразовывать данные при малом числе хранимых значений. Условный пример: Отсортировать поток с двумя регистрами. <a id=\"variant-register-machine\"></a>\n- Стековые вычисления. Определение: Построить вычисление операциями над вершиной стека. Условный пример: Получить формулу без именованных переменных. <a id=\"variant-stack-language\"></a>\n- Согласование исполнителей. Определение: Организовать независимые программы с обменом данными и общими ресурсами. Условный пример: Согласовать два процессора без взаимного ожидания. <a id=\"variant-parallel-program\"></a>\n- Исправление программы. Определение: Найти и изменить ошибочные действия в готовой процедуре. Условный пример: Исправить одну команду, нарушающую маршрут. <a id=\"variant-debug-program\"></a>\n- Решение для всех допустимых входов. Определение: Создать алгоритм, работающий на наборе случаев, а не на одном образце. Условный пример: Построить сортировщик для любого допустимого потока. <a id=\"variant-general-solution\"></a>\n- Оптимизация процедуры. Определение: Улучшать корректную программу по заданной метрике. Условный пример: Сократить время исполнения при том же результате. <a id=\"variant-program-optimization\"></a>"},{"id":"context","title":"Контекст и ограничения","body":"Широкий каталог механик цифровых паззлов, бумажных логических задач и физических головоломок. Каждая позиция содержит действие или правило и условный пример применения."}],"relations":[],"placements":[{"catalogId":"puzzle","id":"family-programming","title":"Головоломки","url":"https://gamemechanics.pro/ru/mechanics/puzzle/#family-programming","categoryIds":["section-1"]}],"supersededBy":[],"attributes":{"preview":{"updatedAt":"2026-10-22","title":"Алгоритмы и программирование","description":"Игрок создаёт процедуру, которая решает задачу в заданной модели исполнения.","image":{"src":"images/mechanics/adventure-human-resource-machine-00.webp","width":1440,"height":810,"game":"Human Resource Machine","sourceUrl":"https://store.steampowered.com/app/375820/","originalUrl":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/375820/ss_5de238ca62f67dc97c940bd6af61c03a4320c981.1920x1080.jpg?t=1692721273","credit":"Tomorrow Corporation","rights":"Game imagery © its respective rights holders. Publisher-distributed Steam screenshot; all rights reserved. Excluded from MIT and CC BY 4.0.","caption":"Команды программы управляют переносом и вычислением","alt":"Команды программы управляют переносом и вычислением","markers":[{"x":84,"y":65,"label":"Программа определяет порядок выполнения"},{"x":25,"y":49,"label":"Исполнитель применяет команды в игровом мире"}]},"tips":["Давайте пошаговое выполнение и наблюдение переменных или состояний."],"examples":[{"title":"Human Resource Machine","url":"https://store.steampowered.com/app/375820/"}]}},"endsAt":null,"provenance":"Original editorial design catalog consolidated from project discussions on 2026-10-20. Complete discussion item lists and contextual limitations are preserved; linked primary sources support specific techniques, not the entire classification. English translation was prepared with machine assistance and editorial review.","license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors","catalogKey":"catalog/puzzle"}}