- Сейчас работаю Fullstack Software Developer
- А ещё — ассистент кафедры информационных систем
- Сейчас изучаю DevOps
- Сейчас разрабатываю образовательную платформу
- Бакалавриат — 09.03.02 «Информационные технологии в дизайне» (завершён)
- Учусь в магистратуре — 44.04.01 «Цифровая образовательная среда и цифровые технологии»
- Санкт-Петербург, Россия
- Русский — родной, English — B1
- За 5+ лет обучил программированию 200+ детей и 100+ студентов
- Помимо кода — дизайн: Figma, Photoshop, 3D в Blender
- Хобби: гитара, пение, выращивание цветов
- Со мной можно обсудить инвестиции
- Открыт к интересным проектам и фрилансу
- Пишите в Telegram или на почту — отвечаю быстро
- Резюме и портфолио: kostinp.github.io
|
React |
Next.js |
TypeScript |
JavaScript |
C# |
.NET |
Go |
|
Docker |
Kubernetes |
PostgreSQL |
Unity |
Figma |
Git |
Ходят ⚫ чёрные. Счёт: ⚫ 4 : 4 ⚪. Нажмите на зелёную клетку, чтобы сходить.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ |
| 2 | ▫️ | ▫️ | ▫️ | 🟩 | ⚪ | ⚫ | ▫️ | ▫️ |
| 3 | ▫️ | ▫️ | ▫️ | ▫️ | ⚪ | 🟩 | ▫️ | ▫️ |
| 4 | ▫️ | ▫️ | ⚫ | ⚫ | ⚪ | 🟩 | ▫️ | ▫️ |
| 5 | ▫️ | ▫️ | ▫️ | ⚫ | ⚪ | 🟩 | ▫️ | ▫️ |
| 6 | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | 🟩 | ▫️ | ▫️ |
| 7 | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ |
| 8 | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ | ▫️ |
📜 Правила игры
Классический реверси (отелло) 8×8, играют два цвета — ⚫ чёрные и ⚪ белые. Первыми всегда ходят чёрные.
- Начальная расстановка. В центре доски стоят 4 фишки крест-накрест: D4/E5 — один цвет, D5/E4 — другой.
- Ход. Фишку можно поставить только на пустую клетку, и только если она «зажимает» одну или несколько фишек соперника по прямой линии (по горизонтали, вертикали или диагонали) между новой фишкой и уже стоящей своей фишкой на этой линии, без разрывов.
- Переворот. Все зажатые таким образом фишки соперника переворачиваются и становятся цветом того, кто сходил.
- Если хода нет. Если у игрока нет ни одного допустимого хода, ход автоматически переходит к сопернику.
- Конец игры. Игра заканчивается, когда ни у одного из игроков нет доступных ходов (обычно — когда заполнена вся доска). Побеждает тот, у кого на доске больше своих фишек; при равном счёте — ничья.
⚙️ Как это работает
Общая доска — играют все, кто зайдёт в этот README.
- Кликните по зелёной клетке на доске выше — откроется новый Issue с предзаполненным заголовком вида
Move: E2. - Просто создайте issue, ничего не меняя в заголовке, и закройте вкладку.
- GitHub Action подхватывает событие
issues: opened, запускаетscripts/reversi.py, который проверяет ход по правилам реверси (клетка должна окружать фишки соперника хотя бы в одном направлении), переворачивает фишки, обновляетgame/state.jsonи перегенерирует этот README. - Бот комментирует issue результатом хода и закрывает его. Некорректные ходы отклоняются с пояснением, доска не меняется.
- Ход передаётся следующему цвету автоматически — независимо от того, кто его отправил. Если у стороны нет доступных ходов, ход пропускается.
- Когда партия заканчивается, бот объявляет победителя и тут же начинает новую игру на этой же доске — счётчик ходов в топе продолжает копиться от игры к игре.
Исходники: scripts/reversi.py · .github/workflows/reversi.yml · game/state.json
🕓 Последние 5 ходов
| Дата (UTC) | Ход | Игрок |
|---|---|---|
| 11.08.26 15:37 | ⚪ E2 | @KostinP |
| 11.08.26 15:33 | ⚫ F2 | @vologin-dmitry |
| 06.08.26 13:20 | ⚪ E3 | @KostinP |
| 06.08.26 13:05 | ⚫ C4 | @KostinP |
🏆 Топ-10 по числу ходов
| # | Игрок | Ходов |
|---|---|---|
| 1 | @KostinP | 3 |
| 2 | @vologin-dmitry | 1 |