← все проекты

Покер Банды

Онлайн-покер для компании друзей: 7 персонажей с плакатов «Разыскивается», 7 локаций, турнир холдема до победителя, чат, эмодзи, виски, кальян.

repo: E:/Проекты для Гитхаба/pokerserver: cfru (после «да»): /opt/poker, pm2 poker, myvisionagency.ru/poker/docs: docs/память: poker-banda-project
готовS1 · С1 · Движок игры13/13

Цель: Холдем без лимита: раздача, торговля, побочные банки, делёж, блайнды по таймеру, вылет и места. Доказательство: 300 турниров ботами.

↑ Движок: правила холдема, банки, блайнды, таймер хода
✓ Движок холдема: торговля, мин-рейз, неполный олл-ин, побочные банки, делёж, вылет и места, блайнды под длительность. 17 экзаменов + прогон 20 000+ раздач.
feature
A1.1 Турнир на 2, 3, 5 и 7 игроков доигрывается до одного победителя без вмешательства человека: 300 турниров ботами, ни одного зависания и ни одной ошибки.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.2 Фишки не появляются и не исчезают: после каждого хода в тех же 300 турнирах сумма стеков и ставок равна стартовым фишкам всех игроков.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.3 Побочные банки: три игрока идут олл-ин с разными стеками, каждый забирает не больше, чем мог выиграть; лишнее возвращается тому, кто поставил больше всех.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.4 Равные комбинации делят банк поровну, нечётная фишка уходит первому слева от баттона.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.5 Комбинации определяются верно: стрит от туза снизу проигрывает стриту до шестёрки, флеш бьёт стрит, кикер решает при равной паре, фулл-хаус сравнивается по тройке, борд играет у обоих = делёж.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.6 Один на один: баттон ставит малый блайнд и ходит первым до флопа, после флопа первым ходит другой.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.7 Минимальный рейз равен последнему повышению; рейз меньше минимума отклоняется; олл-ин меньше полного рейза не даёт уже сходившему игроку повысить снова, только колл или фолд.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.8 Блайнды начинаются с 5/10, каждый уровень длится 5 минут, ставки только растут; к выбранной длительности (45, 60, 90 минут) большой блайнд дорастает минимум до десятой части всех фишек на столе.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.9 Ни в одном сообщении сервера игрок не получает чужие карманные карты до вскрытия.
Экзамен: tests/spec/s1-server.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.10 Не сходил за отведённое время: сервер чекает, если можно, иначе сбрасывает.
Экзамен: tests/spec/s1-server.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.11 В каждой раздаче 52 разные карты, у всех игроков и на борде нет повторов.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A1.12 Турнир 7 «осторожных» ботов при 20 секундах на раздачу заканчивается не позже чем за выбранную длительность плюс 30%.
Экзамен: tests/spec/s1-engine.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
готовS2 · С2 · Лобби и стол14/14

Цель: Вход по паролю клуба, создание стола, выбор персонажа, стол на телефоне и компе, возврат после обрыва, пауза, боты.

↑ Лобби, выбор персонажа и стол для телефона и компа
✓ Вход по паролю клуба, лобби, создание стола, выбор персонажа по плакатам, стол на телефоне и компе, возврат после обрыва, пауза, боты, перенос места одноразовой ссылкой.
feature
A2.1 Без пароля клуба сервер не отвечает на игровые команды: сокет без токена отклоняется, `/api/*` отдаёт 401; неверный пароль шестой раз за минуту получает 429.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.2 Создание стола: можно выбрать любую из 7 локаций, длительность 45, 60 или 90 минут и стек; неизвестная локация отклоняется.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.3 Друг выбирает персонажа из 7; занятый персонаж второму игроку не даётся; восьмой игрок за стол не садится.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.4 Начать игру может только хозяин стола и только когда за столом 2+ игрока; после старта у всех сидящих приходит стол с картами.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.5 Телефон 390×844: видны все 7 мест, свои карты, борд, банк, уровень блайндов и кнопки хода; страница не прокручивается вбок, кнопки хода не меньше 44 пикселей и не перекрывают карты.
Экзамен: tests/spec-ui/s2-layout.spec.js Команда: npm run build && npm run spec:ui (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.6 Компьютер 1440×900: стол целиком в экране, 7 мест не налезают друг на друга.
Экзамен: tests/spec-ui/s2-layout.spec.js Команда: npm run build && npm run spec:ui (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.7 Кнопки хода: фолд, чек или колл с суммой, рейз с ползунком и быстрыми суммами (минимум, полбанка, банк, олл-ин); когда ход не твой, кнопки не нажимаются.
Экзамен: tests/spec-ui/s2-layout.spec.js Команда: npm run build && npm run spec:ui (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.8 Игрок закрыл вкладку и вернулся: снова за столом со своими картами и стеком, без повторного выбора персонажа.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.9 Вылетевший игрок остаётся за столом зрителем: видит игру и пишет в чат, но не получает карт.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.10 Хозяин может поставить игру на паузу: таймер блайндов и таймер хода стоят, пока пауза.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A2.11 Хозяин может посадить бота на свободное место до старта, чтобы попробовать игру вдвоём или одному.
Экзамен: tests/spec/s2-lobby.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A0.1 У страницы есть фавиконка, иконка для телефона, картинка для соцсетей 1200×630, заголовок и описание; страница закрыта от поисковиков.
Экзамен: tests/spec/s0-product.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A0.2 В текстах интерфейса нет длинного тире и технических слов.
Экзамен: tests/spec/s0-product.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
ревьюS3 · С3 · Приколы и локации8/9

Цель: Чат, 16 эмодзи, виски, кальян, звуки, 7 локаций с разным оформлением.

↑ Чат, эмодзи, виски, кальян, звуки и 7 локаций
✓ Чат с быстрыми фразами, 16 эмодзи с полётом, виски, кальян с дымом, синтезированные звуки, 7 локаций, переезд стола хозяином.
feature
A3.1 Чат: сообщение получают все за столом и зрители; пустое и длиннее 200 символов отклоняется.
Экзамен: tests/spec/s3-fun.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A3.2 Эмодзи: из набора в 16 штук можно кинуть в конкретного игрока или на весь стол, событие получают все; эмодзи не из набора отклоняется.
Экзамен: tests/spec/s3-fun.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A3.3 Виски: налить себе или угостить другого; счётчик стаканов у получателя растёт и виден всем.
Экзамен: tests/spec/s3-fun.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A3.4 Кальян: заказать на стол, затянуться может только тот, у кого шланг, передать шланг можно другому игроку.
Экзамен: tests/spec/s3-fun.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A3.5 Защита от спама: больше 5 сообщений или эмодзи за 3 секунды от одного игрока отклоняются.
Экзамен: tests/spec/s3-fun.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A3.6 7 локаций различаются с первого взгляда: фон, сукно, оформление.
Проверка руками: инструкция внизу docs/ACCEPTANCE.md
✓ Проверено снимками всех 7 локаций (scripts/shots/loc-*.png, locs-sheet.jpg): фон, сукно и декор у каждой свои. Хозяин может переезжать в меню «Локация».
acceptance
A3.7 Звуки раздачи, фишек, своего хода и победы; кнопка выключения звука запоминается.
Проверка руками: инструкция внизу docs/ACCEPTANCE.md
✓ Код готов: раздача, фишки, свой ход, победа; значок звука в шапке, выбор запоминается. Звук слышит только человек: ждёт проверки владельцем на айфоне.
acceptance
A3.8 Эмодзи летит от отправителя к цели, дым кальяна идёт по столу, после пятого стакана экран выпившего на пару секунд плывёт (отключается в настройках).
Проверка руками: инструкция внизу docs/ACCEPTANCE.md
✓ Снимки: эмодзи в полёте и шлепок (09-emoji-flight, 09b-emoji-splat), дым кальяна (10-smoke), после 5-го стакана класс drunk на экране и «🥃5» у места (15-drunk). Отключается в меню.
acceptance
готовS4 · С4 · Награды и финал7/7

Цель: Награды за голову, места, итоги, плакат победителя, таблица сезона, восстановление после перезапуска, режим ТВ.

↑ Награды, итоги, плакат победителя, сезон, режим ТВ
✓ Награды за голову (Илюхе ×2), итоги и места, плакат победителя, таблица сезона, подъём после перезапуска, режим ТВ.
feature
A4.1 У каждого персонажа своя награда за голову; кто выбил игрока, забирает его награду; Безумному Илюхе награда засчитывается вдвойне; при дележе банка награда делится.
Экзамен: tests/spec/s4-final.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A4.2 Места выдаются по порядку вылета; вылетевшие в одной раздаче делят места по стеку перед раздачей; в конце у всех экран итогов с местами и наградами.
Экзамен: tests/spec/s4-final.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A4.3 Таблица сезона: игры, победы, призовые места и собранные награды по каждому персонажу копятся от игры к игре и переживают перезапуск сервера.
Экзамен: tests/spec/s4-final.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A4.4 Перезапуск сервера посреди раздачи: стол поднимается с теми же картами, стеками и ходом.
Экзамен: tests/spec/s4-final.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A4.5 Режим ТВ: зритель по ссылке стола видит игру без чужих карт.
Экзамен: tests/spec/s4-final.spec.js Команда: npm run spec (в E:/Проекты для Гитхаба/poker)
✓ Экзамен зелёный. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.
acceptance
A4.6 Победитель получает плакат «Разыскивается» со своим портретом и статистикой вечера, плакат скачивается картинкой.
Проверка руками: инструкция внизу docs/ACCEPTANCE.md
✓ Снимок экрана итогов (14-results-phone.png): плакат с портретом, именем, локацией, датой и счётом вечера, кнопка «Скачать плакат» (PNG через canvas, на айфоне через «Поделиться»).
acceptance
планS5 · С5 · Голос и камера0/1

Цель: Отложено владельцем 28.10: сначала чат и эмодзи, голос и камеру добавим по запросу (LiveKit на cfru).

↑ Голос и камера (отложено)
feature
готовS6 · С6 · Выкат на cfru1/1

Цель: myvisionagency.ru/poker/, свой пользователь, порт на 127.0.0.1, nginx, пароль клуба. Только по «да» владельца.

↑ Выкат на cfru по «да» владельца
✓ Выкачено 28.10 по «да» владельца: https://myvisionagency.ru/poker/. systemd poker под своим пользователем, порт 127.0.0.1:3490, .env 600, код у root, nginx-сниппет с бэкапом. Проверено на домене: без пароля api и фото 401, превью 200, лимит паролей по адресу игрока (TRUST_PROXY), живая партия через wss: 3 раздачи, чат, эмодзи, снимок телефона. Тестовый стол удалён.
feature
готовS7 · С7 · Правки после первого показа4/4

Цель: Видно, кто выиграл раздачу; седьмой персонаж «Повелитель покера»; до трёх кальянов, кальян можно забрать.

↑ Победитель раздачи, Повелитель покера, несколько кальянов
✓ Сделано локально, ОТК: 6 находок закрыто. Прогон 57/57. Выкат ждёт «да».
feature
A7.1 После вскрытия видно, кто выиграл: надпись с суммой и комбинацией, корона, 5 карт выделены; «все сбросили»; «банк делят»
Экзамен: tests/spec-ui/s7-winner.spec.js Команда: npm run build && npm run spec:ui
✓ Экзамен tests/spec-ui/s7-winner.spec.js зелёный (4 прогона подряд, победители случайные) + 5 тестов tests/unit/win.test.js: побочный банк, делёж, все сбросили, стрит с туза. Снимок tests/spec-ui/shots/winner-showdown.png.
acceptance
A7.2 Седьмой персонаж зовётся «Повелитель покера»
Экзамен: tests/spec/s7-fixes.spec.js Команда: npm run spec
✓ Экзамен tests/spec/s7-fixes.spec.js A7.2 зелёный.
acceptance
A7.3 До трёх кальянов, четвёртый не заказать, кальян можно забрать, затягивается только держатель
Экзамен: tests/spec/s7-fixes.spec.js Команда: npm run spec
✓ Экзамен tests/spec/s7-fixes.spec.js A7.3 зелёный + тест одновременного «забрать» в otk-regress.
acceptance
готовS8 · С8 · Графика дороже7/7

Цель: Анимации кодом: раздача, стопки фишек, попадания, свечение хода, монеты победы, дым; нарисованные фоны локаций (тест Салуна 3 ₽, остальные по «трачу»).

↑ Анимации стола и нарисованные фоны
✓ Сделано локально, ОТК пройден, 65/65. Выкат ждёт «да».
feature
A8.1 В начале раздачи карты разлетаются от дилера к каждому игроку
Проверка: tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен tests/spec-ui/s8-graphics.spec.js: .deal-fly при старте раздачи.
acceptance
A8.2 Банк стопкой фишек, выше при большем банке
Проверка: tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s8-graphics: стопка растёт вместе с банком на всей раздаче.
acceptance
A8.3 Попадание эмодзи встряхивает аватар, помидор оставляет пятно на 3 секунды
Проверка: tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s8-graphics: встряска и пятно 3 с; повторное попадание встряхивает заново (ОТК).
acceptance
A8.4 На своём ходу край экрана светится, на чужом нет
Проверка: tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s8-graphics: свечение только на своём ходу.
acceptance
A8.5 Нет задач дольше 200 мс за раздачу с эмодзи и дымом
Проверка: tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s8-graphics: самая длинная задача меньше 200 мс; дым облегчён после замера ОТК при трёх кальянах.
acceptance
A8.6 Вспышка и монеты победы, дым клубами и кольцами, нарисованный фон Салуна
Проверка: руками: docs/ACCEPTANCE.md
✓ Проверено глазами: монеты и вспышка у победителя (tests/spec-ui/shots/winner-showdown.png), дым и кольца (graphics-phone.png), нарисованный фон Салуна (scripts/shots/loc-saloon.png).
acceptance
готовS9 · С9 · Новые приколы5/5

Цель: Реванш тем же составом одной кнопкой, звания вечера, растущая награда за голову.

↑ Реванш, звания вечера, растущая награда
✓ Сделано локально, ОТК пройден, 65/65. Выкат ждёт «да».
feature
A9.1 Реванш одной кнопкой: тот же стол, персонажи и боты, игра сразу, без второго стола, отказ не хозяину
Проверка: tests/spec/s9-fun.spec.js + tests/spec-ui/s8-graphics.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамены tests/spec/s9-fun.spec.js (2) и s8-graphics (кнопка в браузере) + otk-regress: возврат по старому ключу, цепочка, зритель.
acceptance
A9.2 Звания вечера у лидеров, с нулём не выдаются
Проверка: tests/spec/s9-fun.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s9-fun A9.2; сбросы по таймеру не считаются (otk-regress).
acceptance
A9.3 Выбивший забирает награду целиком, его голова дорожает на половину награды жертвы
Проверка: tests/spec/s9-fun.spec.js
✓ Прогон 65/65 зелёный (28.10). Экзамен s9-fun A9.3; цена головы видна значком 💰 у места.
acceptance
A9.4 Звания на плакате победителя и в итогах
Проверка: руками: docs/ACCEPTANCE.md
✓ Проверено глазами: звания на плакате и в итогах (scripts/shots/14b-results-phone-full.png).
acceptance

Ворклог (места остановки)

28.10.2026, 17:04:41 · S8-S9 · claude

С8–С9 выкачены по «да»: анимации, фон Салуна, реванш, звания, растущая награда. Проверено на сайте: новая сборка, фон отдаётся, живая партия через домен (3 раздачи, раздача карт видна на снимке). Тестовый стол удалён, стол друзей сохранён.

→ Ждём «трачу ~40 ₽» на 13 фонов (задания готовы). Откат: /opt/poker-backup-20261028-170233/before.tgz.

28.10.2026, 16:57:58 · S8-S9 · claude

С8 и С9 локально: карты летят от дилера, банк стопкой фишек, монеты и вспышка победы, встряска от попаданий, свечение своего хода, кольца дыма, нарисованный фон Салуна (3 ₽); реванш тем же составом одной кнопкой, звания вечера, растущая награда за голову. ОТК нашёл 9 недочётов (возврат после реванша, плакат при реванше, «Каменный» по таймеру, дым при трёх кальянах и др.), все закрыты. Блайнды после окончания времени круче, чтобы игра гарантированно кончалась. Прогон 65/65.

→ Ждём «да» на выкат С8–С9 и «трачу ~40 ₽» на 13 фонов (6 локаций вертикально + 7 горизонтально, задания готовы, холостой прогон 13). Вопросы Q13–Q15 в DECISIONS-QUEUE.

28.10.2026, 16:11:04 · S7 · claude

С7 выкачен по «да»: победитель раздачи крупно, «Повелитель покера», до трёх кальянов и «забрать». Проверено на сайте: состав, кальяны, новая сборка, живая партия через домен (3 раздачи, чат, эмодзи). Тестовый стол удалён, стол друзей сохранён.

→ Владелец выбирает варианты графики (A/B/C, тест фона ~5 ₽) и приколы для следующего спринта. Откат С7: /opt/poker-backup-20261028-160920/before.tgz.

28.10.2026, 15:34:45 · S7 · claude

С7 локально: видно победителя (надпись по банкам, корона, 5 карт, ждёт ривер после олл-ина), «Повелитель покера», до трёх кальянов и «забрать». ОТК нашёл 6 дефектов (побочные банки, свои карты, туз в колесе, спойлер при олл-ине, сообщения кальяна, догоревший кальян), все закрыты. Прогон 57/57.

→ Ждём «да» на выкат С7. План по графике (уровни A/B/C, тест 1 фона за ~5 ₽) и список новых приколов ждут выбора владельца.

28.10.2026, 14:39:42 · S6 · claude

По решению владельца: Хитрый Паша заменён на «Секретного человека» (знак вопроса вместо лица, это сам владелец), Паша и Павел один человек. Портреты получили метку версии, чтобы замена фото доходила до телефонов сразу, а не через неделю кэша. Выкачено по «да», проверено на сайте: список персонажей и портрет.

→ Звук на айфоне (A3.7) и Молодёжная 20/22 ждут владельца. Откат правки: /opt/poker-backup-20261028-143915/before.tgz.

28.10.2026, 14:32:25 · S6 · claude

Выкат на cfru по «да»: https://myvisionagency.ru/poker/ работает. Служба systemd poker, nginx /poker/ и /poker/socket.io, закрыто паролем клуба, noindex. Живая проверка через домен пройдена, тестовые данные убраны.

→ Владелец: раздать друзьям ссылку и пароль, проверить звук на айфоне (A3.7), ответить по очереди решений (кто есть кто, Молодёжная 20/22, ок на правки экзаменов). Дальше по запросу: С5 голос и камера, новые фото персонажей.

28.10.2026, 14:18:02 · S1-S4 · claude

С1–С4 собраны локально: движок, лобби, стол для телефона и компа, чат, эмодзи, виски, кальян, 7 локаций, награды, плакат победителя, сезон, режим ТВ. ОТК 3 круга: найдено и закрыто 12 дефектов, главный — «призрак места» во второй вкладке. Прогон 28.10: 48/48 зелёных (41 экзамен + длинный тест движка 20 000+ раздач + 6 тестов по находкам ОТК), ОТК 3 круга.

→ Ждём владельца: ответы по очереди решений (кто есть кто, Молодёжная 20/22), «да» на выкат на cfru /poker/, проверка звука на айфоне (A3.7). После «да»: пользователь poker, systemd, nginx-сниппет deploy/poker.nginx.conf, TRUST_PROXY=1, PUBLIC_URL при сборке.