Скачать готовый комплект: https://github.com/askras/hexapawn-sama/releases/latest/download/hexapawn-sama.zip
Набор материалов для учебного мероприятия: участники строят самообучающуюся машину из карточек и конфет, которая учится играть в «шесть пешек» (Hexapawn) — настольную игру, придуманную Мартином Гарднером.
| Файл | Описание |
|---|---|
rules.pdf |
Правила игры (3 стр.) |
examples.pdf |
Примеры партий с разбором (4 стр.) |
field.pdf |
Игровое поле 3×3 (1 стр.) |
cards.pdf |
Каталог карточек: 71 страница, страница N = карточка N (71 стр.) |
rating.pdf |
Таблица результатов (100 партий) и график обучения (2 стр.) |
guide.pdf |
Методичка ведущего (4 стр.) |
hexapawn/
├── README.md
├── LICENSE
├── Makefile Сборка всех PDF
├── .gitignore
├── .editorconfig Единые отступы и окончания строк
├── .gitattributes В репозитории только LF
├── .github/workflows/ Сборка PDF в CI
└── src/ Исходники (.tex)
├── board.tex Общая реализация доски, подключается через \input
├── colors.tex Общая палитра цветов, подключается через \input
├── colophon.tex Общий колонтитул с лицензией, подключается через \input
├── rules.tex Правила игры
├── examples.tex Примеры партий с разбором
├── field.tex Игровое поле 3×3
├── cards.tex Карточки к игре, 70 штук, плюс начальная расстановка
├── rating.tex Таблица результатов и график обучения
└── guide.tex Методичка ведущего
Рисование игрового поля вынесено в src/board.tex: там лежат сетка, пешки, подписи и все три варианта доски.
Палитра вынесена отдельно в src/colors.tex, потому что её использует не только доска: таблица результатов
(rating.tex) рисует оси и сетку графика теми же цветами и подключает палитру напрямую, минуя board.tex.
Остальные документы подключают доску через \input{board.tex} и содержат только свой текст и вёрстку.
Правки в геометрии доски достаточно внести в одном месте, а цвета — в colors.tex.
Колонтитул с указанием лицензии тоже общий: он лежит в src/colophon.tex и подключается всеми шестью документами
через \input{colophon.tex}.
Текст лицензии и ссылки меняются в одном файле. Там же выбирается, печатать ли номер страницы: у карточек, поля и
таблицы результатов номер не нужен, у методички, правил и примеров нужен.
В репозиторий попадает только исходный код. Каталог build/ с готовыми PDF создаётся командой make, в git не входит,
и при клонировании репозитория папки build/ не будет — она появится после первой сборки:
build/ создаётся командой make
├── rules.pdf
├── examples.pdf
├── field.pdf
├── cards.pdf
├── rating.pdf
└── guide.pdf
Собранные PDF выкладываются в GitHub Releases.
Требуется TeX Live с пакетами polyglossia, fontspec, tikz и кириллическими шрифтами (DejaVu или Liberation).
make # собрать все шесть PDF в build/
make clean # удалить PDF и вспомогательные файлыMakefile собирает каждый документ целиком: запускает xelatex дважды (нужно для перекрёстных ссылок),
копирует готовый PDF из src/ в build/ и удаляет временные .aux, .log и .out.
Пересобирается только то, что изменилось, — если править один документ, остальные останутся как есть.
Отдельный документ:
make build/cards.pdfЦелевые файлы:
build/cards.pdf,
build/guide.pdf,
build/examples.pdf,
build/field.pdf,
build/rules.pdf,
build/rating.pdf.
Каждый .tex компилируется отдельно:
cd src
xelatex cards.texСборка cards.tex занимает около минуты, остальные документы — секунды.
Файл cards.tex даёт 71 страницу, остальные — от 1 до 4 страниц.
Локальный TeX Live не обязателен.
В .github/workflows/build.yml настроена сборка на GitHub Actions: она запускается при каждом push,
при pull request и вручную, а готовые PDF складываются в артефакты запуска.
У сборки в CI две задачи:
- поймать сломанный исходник — висящий
\input, незакрытую скобку, опечатку в имени макроса; без этого в релиз может попасть пустой или неполный PDF; - проверить число страниц в трёх документах, где оно задано конструкцией:
cards.pdf(71 страница = 70 карточек плюс расстановка, между карточками стоит\newpage),field.pdf(1 страница, во всём документе 21 слово — подписи клеток) иrating.pdf(2 страницы: таблица, принудительный разрыв и график).
Гарнитура берётся из первой доступной в системе: Liberation Serif, затем DejaVu Serif, затем CMU Serif.
Liberation стоит первым, потому что начертание ровнее, а DejaVu — шире и может добавить страницу: с ним методичка
собирается в 5 страниц вместо 4. Шрифты Liberation в CI ставятся явно (fonts-liberation), иначе порядок
не имел бы смысла: пакет не входит в стандартный набор TeX Live.
Поэтому PDF, собранный на разных машинах, может отличаться начертанием.
Для публикации берите PDF из артефактов CI или собирайте на одной и той же машине.
Архив hexapawn-sama.zip, который лежит в Releases, собирает сам CI: отдельная задача release в
.github/workflows/build.yml запускается только при пуше тега с префиксом v.
git tag v1.0
git push origin v1.0Что при этом происходит:
- Задача
pdfсобирает шесть PDF и проверяет число страниц. Если проверка не прошла, релиз не создаётся — это защита от выкладки сломанной вёрстки. - Задача
releaseзабирает PDF из артефактов, упаковывает их вhexapawn-sama.zipи создаёт релиз с этим архивом. Имя архива не содержит версии, поэтому ссылка в начале этого файла остаётся рабочей при выпускеv2.0и дальше — править её не нужно.
Имя файла зашито в двух местах: в ссылке «Скачать готовый комплект» выше и в команде zip в workflow.
Если переименуете архив, поправьте оба.
Если релиз с таким тегом уже существует, повторный пуш того же тега ничего не сделает: git push origin v1.0
ответит «Everything up-to-date», а gh release create упадёт, потому что тег занят. Чтобы перевыпустить версию
после правок, удалите старый релиз и локальный тег, затем пушните его заново:
gh release delete v1.0
git tag -d v1.0 && git push --force origin v1.0Это перезаписывает опубликованную версию, так что повторяйте только если в правках есть настоящая ошибка, а не опечатка в описании.
cards.pdf— распечатать целиком и разрезать по страницам. Страница N = карточка N, внизу каждой страницы стоит сквозной номер вида45/71.- Белые карточки (страницы 1–33) — информационные: по ним гроссмейстер проверяет свои ходы. Для игры нужны только чёрные (страницы 34–70).
- Остальные документы — печатать как есть.
Внизу каждой карточки стоят две дроби:
- Слева — сквозной номер: белые занимают 1–33, чёрные 34–70.
- Справа — номер среди карточек своей стороны:
12/37.
Именно левая дробь сортирует: сложите все карточки сквозной стороной вверх и отсортируйте по ней — должен получиться
сплошной ряд 1/71 … 71/71.
Любой пропуск означает потерю, и по номеру сразу понятно, какую именно карточку надо допечатать.
Правая дробь позволяет проверить каждую колоду отдельно: 1/33 … 33/33 и 1/37 … 37/37.
Всего стрелок: 72 на карточках белых и 90 на карточках чёрных, вместе 162. Для игры необходимы только карточки чёрных — 90 стрелок.
| Цвет | Белые | Чёрные | Всего |
|---|---|---|---|
| зелёный | 18 | 22 | 40 |
| фиолетовый | 18 | 22 | 40 |
| красный | 18 | 23 | 41 |
| жёлтый | 18 | 23 | 41 |
| Всего | 72 | 90 | 162 |
Стрелок на карточках чёрных: 22 зелёных, 22 фиолетовых, 23 красных и 23 жёлтых. Каждой цветной стрелке в игре будет соответствовать конфета соответствующего цвета.
Цвета задаются одним блоком в src/colors.tex:
\definecolor{arrow1}{HTML}{00B050} % зелёный
\definecolor{arrow2}{HTML}{7030A0} % фиолетовый
\definecolor{arrow3}{HTML}{FF0000} % красный
\definecolor{arrow4}{HTML}{FFFF00} % жёлтыйИмена arrow1…arrow4 условные — это номера, а не названия цветов.
При необходимости смерить цвета стрелок, меняйте только значения HEX.
Для чего нужны конфеты и как они связаны со стрелками, описано в методичке ведущего guide.pdf.
Методические материалы, тексты, оформление и исходный код этого комплекта распространяются по лицензии
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) —
https://creativecommons.org/licenses/by-sa/4.0/.
Полный текст лицензии — в файле LICENSE.
Обратите внимание: пояснения ниже — это только удобное изложение, чтобы понять суть лицензии, а не юридический документ. Юридическую силу имеет только оригинальный текст лицензии на английском языке — файл
LICENSE.
- Копировать и распространять — передавать материал другим людям в любых форматах и на любых носителях.
- Перерабатывать и адаптировать — создавать новые материалы на основе оригинала: ремиксы, переводы, адаптации.
- Использовать в коммерческих целях — продавать или применять изменённые либо оригинальные работы в бизнес-проектах.
- Указывать авторство (Attribution) — дать ссылку на автора, на саму лицензию и отметить, если вы вносили изменения в оригинал.
- Сохранять условия (ShareAlike) — если вы переделали материал, вы обязаны распространять свою новую (производную) работу под точно такой же лицензией CC BY-SA 4.0 или совместимой с ней.
- Запрещать использование другим — нельзя накладывать дополнительные юридические ограничения или технологические меры (например, DRM-защиту), которые мешают другим пользоваться материалом в рамках лицензии.
- Скрывать авторство — нельзя удалять информацию об авторе и об оригинальном тексте или материале.
- Менять лицензию для производных работ — нельзя переводить переделанную вами работу в статус закрытого контента или применять другие несовместимые лицензии.
Автор комплекта: Александр (askras) Красников, 2026 г.
Имя автора в самих PDF не печатается. В колонтитуле каждой страницы стоит обозначение лицензии со ссылками — этого достаточно, чтобы выполнялось требование CC BY-SA 4.0 указать лицензию и дать ссылку на неё. Авторство остаётся здесь, в README, и на странице релизов.
Колонтитул с лицензией общий для всех документов и лежит в src/colophon.tex.
Что не покрыто лицензией: описание самой игры «шесть пешек» (Hexapawn) придумано Мартином Гарднером и опубликовано в 1962 году, поэтому оно находится в общественном достоянии и лицензией не ограничено.
- Hexapawn — Мартин Гарднер, 1962, общественное достояние.
- Материал статьи Wikipedia распространяется по лицензии CC BY-SA. https://en.wikipedia.org/wiki/Hexapawn (дата обращения: 29 сентября 2026 г.).