Вечер игры
На поле вечер идёт тремя явными шагами: кто пришёл →
составы → игра. Полоса шагов вверху экрана всегда показывает, где вы.
Всё общее: явку, счёт и таймер видят и меняют все играющие со своих
телефонов.
Шаг 1. Кто пришёл
19:47⚽ Клуб
1Кто пришёл
2Составы
3Игра
Кто пришёл · 9 из 14 · 🚗 1 в пути
✓ Арман К.
✓ Данияр С.
✓ Санжар Б.
🚗 Ольжас Т.
Ерлан Ж.
Ержан М.
Азамат Р.
Нурлан Б.
Отметить всех🚗 Кто в пути
Собрать составы из пришедших
Составы соберутся заново —
из отмеченных и тех, кто в пути. Не пришедшие получат жёлтую карточку.
⚽Матч
📊Статистика
👥Игроки
👤Кабинет
☰Ещё
Шаг 1 целиком: полоса шагов, список явки
с «в пути», кнопки массовой отметки и сборки составов. Тап
по имени — пришёл, тап по 🚗 — приехал, тап по отмеченному —
снять ошибку.
Список — все, кто заявлялся на игру. Отмечать может любой
из играющих: вечер не должен ждать одного человека с телефоном.
Кнопка «Отметить всех» закрывает обычный случай «пришли почти все»
одним нажатием — промахи потом снимаются тапом.
Когда появляется отметка явки. За столько
минут до начала, сколько задано настройкой клуба (по умолчанию
полчаса). Раньше этого срока «Матч» показывает обычную запись
на игру. Опросу это не мешает: он живёт в чате до тех пор, пока
не собраны составы, и опоздавший успевает нажать «Иду».
Опоздание ставит сервер, а не человек.
Отмечен после начала вечера — значит опоздал (⏱). Никто не спорит
на поле, «десять минут прошло или восемь»: время одно на всех.
🚗 «В пути» — обещание, и у него есть срок.
Опаздывающий, но обещавший приехать, отмечается кнопкой «Кто
в пути» — сам со своего телефона или кем-то с поля. Он попадает
в составы наравне с пришедшими и балансируется с самого начала,
а не вставляется потом в самую слабую команду. Приехал — один тап,
и он «пришёл». Не доехал к закрытию вечера — автоматически
становится неявкой: из составов убирается, очков не получает,
а карточку и долю в кассе получает как за обычную неявку — если
карточки и касса в клубе включены. Вечного «в пути» не бывает.
Шаг 2. Составы
19:58⚽ Клуб
✓Кто пришёл
2Составы
3Игра
Составы окончательные
🟢 Зелёные· 5
Арман К.Санжар Б.Азамат Р.+2
🔴 Красные· 5
Данияр С.Ольжас Т.Нурлан Б.+2
🔵 Синие· 5
Ержан М.Ерлан Ж.+3
Манишки
Цвет каждой команды🟢 🔴 🔵 🟡
Начать игру
Откроется запись счёта,
таймер станет общим на всех телефонах.
⚽Матч
📊Статистика
👥Игроки
👤Кабинет
☰Ещё
Шаг 2 целиком: три команды по цветам, выбор
манишек и кнопка старта. «Собрать составы из пришедших»
пересобирает команды ровно из тех, кто на поле и в пути.
Когда записывается достаточно людей (порог — настройка клуба),
бот публикует в чат предварительные составы — из отметок «иду»,
с прямой пометкой, что они предварительные. Окончательные собираются
на поле, из реальной явки: кнопка «Собрать составы из пришедших».
Они уходят в чат отдельным постом — вместе со строкой, кто начинает
и кто ведёт счёт.
Как алгоритм делит команды. У каждого игрока
есть рейтинг силы (оценки коллег + результаты игр + анкета — подробно
в разделе
«Игроки и оценки»).
Алгоритм выравнивает средние силы команд; пары «вместе» и «врозь»,
заданные организатором, соблюдаются как жёсткие правила. Команды
сразу называются цветами манишек — а если на поле манишки раздали
иначе, цвет любой команды меняется на экране вечера, и занятый цвет
не отбирается, а меняется местами.
В этот же момент решаются карточки. Кто
обещал «иду» и молча не пришёл — получает жёлтую карточку. Отказался
заранее (раньше окна в несколько часов — настройка клуба) — карточки
нет: состав ещё можно было добрать, честное предупреждение
не наказывается. «В пути» на этом шаге тоже защищает от карточки.
Подошёл после сборки составов? Его отмечают в явке — бот сам
поставит его в самую малочисленную команду и запишет опоздание.
Но только пока не записана первая игра: очки идут за каждую игру
команды, и пришедший к десятой не должен получить очки за девять
сыгранных без него.
Шаг 3. Игра: табло и таймер
20:23⚽ Клуб
04:37
идёт
2 : 1
Счёт ведут
Синие — они отдыхают
Голы
🟢 Данияр С.
пас: Арман К.пас ✎ ×
🟢 Арман К.+ пас ×
🔴 без автора+ пас ×
Сыграно · 6
🟢 — 🔴2:1
🔵 — 🟢0:2
⚽Матч
📊Статистика
👥Игроки
👤Кабинет
☰Ещё
Шаг 3: таймер, счёт, список голов текущей игры
и сыгранные пары. Табло одно на все телефоны: гол, записанный одним,
через секунды видят все. Сам счёт ведут на отдельной лёгкой странице —
кнопка «⚽ Режим поля» вверху, и во время вечера приложение открывает
её само.
Мини-игра идёт до двух голов или до конца тайма — что наступит
раньше. Длительность тайма — настройка клуба, а на поле её можно
поменять для текущего тайма, не трогая общее правило. В конце тайма
приложение подаёт сигнал (выключается в настройках; звук слышен,
пока экран открыт, а беззвучный режим на iPhone глушит и его).
Пока открыт экран вечера, приложение просит телефон не гасить
экран — таймер доживает до свистка.
Гол записывается на странице поля двумя тапами: «+ ГОЛ» → автор
(или «без автора», если не разглядели). Третий тап необязательный —
«+» в строке гола, кто отдал пас. Ошибку чинят на месте:
«✎» меняет автора, не снимая гол, крестик убирает гол целиком.
Запись открыта
каждому, кто сегодня играет, — вечер не зависит от одного
назначенного человека.
В самом приложении счёт только видно. Так с 25 сентября: одно
и то же раньше можно было записывать в двух местах, и это путало —
а у страницы поля есть то, чего у приложения нет: гол, забитый
при пропавшей связи, она донесёт сама, когда связь вернётся.
Режим поля. На поле телефон держат одной
рукой, связь в манеже слабая, и общее приложение там тяжеловато.
Поэтому счёт ведут на отдельной странице табло: она в пять с лишним
раз легче приложения, кнопка гола во весь экран, гол рисуется
мгновенно, а запись уходит фоном и повторяется, если не дошла.
Пока вечер идёт, приложение открывается на ней само — и возвращает
обратно ссылкой «‹ В приложение» вверху, если нужно отметить явку
или вписать гостя; выбор помнится до конца захода. Ещё два входа:
кнопка «⚽ Режим поля» и команда /field прямо из чата.
Счёт пишет любой, кто сегодня играет.
Отдельного шага «кто ответственный» нет: стоишь в составе вечера —
открываешь табло, записываешь гол, ставишь вратаря, включаешь часы.
По уговору клуба это обычно делают те, чья команда отдыхает, но это
договорённость между людьми, а не запрет в коде. У каждого гола
сохраняется, кто его записал, — спор «кто нажал» решается этим.
Полгода запись была только у назначенных: тогда двадцать телефонов
на табло стоили слишком дорого. После того как воркер переехал
к базе, это перестало быть правдой.
Вратарь — у каждой мини-игры свой.
На табло под кнопками гола стоит строка «🧤 Вратарь» с именем или
честным «не выбран». Поставить его может любой, кто сегодня играет, и
КАЖДАЯ новая мини-игра начинается с пустыми воротами: подставлять
вратаря прошлой игры мы пробовали — он молча уезжал в статистику,
и сухая игра засчитывалась тому, кто в эти ворота не вставал.
Два тапа в начале тайма — цена того, чтобы «на ноль отыграл»
означало правду. Не заполнили — у тайма просто не будет вратаря:
ни сухой игры, ни «пропустил».
Ротация: победитель остаётся
20:31⚽ Клуб
Начать игру
🟢 Зелёные — 🔵 Синие
Зелёные
остаются — победили. Счёт ведут Красные — они отдыхают
🔴 — 🔵
🟢 — 🔴
Сыграно · 7
🟢 — 🔴2:1
🟢 — 🔵1:1
🔴 — 🔵0:2
⚽Матч
📊Статистика
👥Игроки
👤Кабинет
☰Ещё
Экран между играми целиком: большая кнопка —
пара по правилу с объяснением; другие пары остаются мелкими
кнопками, если реальность внесла правки.
После каждой записанной игры приложение само предлагает
следующую пару — с объяснением, почему именно эта.
Правило ротации. Победитель остаётся,
проигравший уходит, заходит команда, отдыхавшая дольше всех.
При ничьей уходит та, что провела на поле больше игр подряд;
если и это поровну — та, что записана в паре первой (подпись
на кнопке честно говорит, кто и почему уходит). Правило —
подсказка, а не запрет: любую другую пару можно начать вручную.
Завершение вечера
Кнопка «Завершить вечер» публикует итоги в чат: счёт по играм,
очки команд, авторы голов. После этого запись закрыта. Если идёт
живая игра — сначала запишите или отмените её: молча похоронить
начатую игру приложение не даст.
20:41⚽ Клуб
Вечер завершён
Итоги ушли в чат7 мини-игр · 15 голов · 12 человек
Очки вечера
🟢 Зелёные9
🔴 Красные7
🔵 Синие4
Кто забивал
Санжар Б.4
Арман К.3
Данияр С.2
⚽Матч
📊Статистика
👥Игроки
👤Кабинет
☰Ещё
То же, что уходит в чат после «Завершить вечер»: сколько сыграли, очки команд и кто забивал. Голевые передачи считаются отдельно — они видны в статистике и на карточке для соцсетей.
Забыли завершить — ничего не сломается.
Через несколько часов бот сам закроет вечер, выложит итоги
и разберётся с теми, кто «ехал и не доехал». Прошлый вечер никогда
не перекрывает следующий.
Ошиблись — правится и после записи.
В разборе вечера у каждой игры есть «✎»: сменить автора гола,
поставить или снять пас, добавить или убрать гол, убрать игру
целиком. Счёт при этом не вводится руками — он пересчитывается из
голов, поэтому разойтись с бомбардирами не может. Пока вечер идёт,
правит любой игравший; после публикации итогов и по вечерам старше
суток — организатор. Итоговый пост и очки прогнозов задним числом
не меняются: победители уже объявлены.
Там же, в разборе вечера, — карточка «Ссылка на этот вечер»:
открытая страница со счётом, бомбардирами, передачами и составами
короткими именами, которой можно поделиться.
Кнопки, которые страшно нажать
На вечере пять кнопок, после которых что-то происходит
по-настоящему. Здесь сказано, что именно, — чтобы не гадать
в манеже, стоя над телефоном.
- «Записать результат» — тайм уходит в таблицу сезона:
очки командам, голы бомбардирам, пасы ассистентам. Записать
один и тот же тайм дважды нельзя, второе нажатие получит
отказ. Ошиблись — это не страшно: у записанной игры есть «✎»,
и правится в ней всё, кроме самого счёта — он пересчитывается
из голов.
- «Закончить» — останавливает часы и объявляет тайм
оконченным. Ничего не записывает. Промахнулись — рядом
появится «Продолжить игру»: она вернёт тайм в игру с того же
времени, а если лимит уже вышел — добавит две минуты.
- «Отменить игру» (только у организатора, внизу страницы
поля) — стирает идущую игру вместе с её голами. Это
единственная кнопка вечера, после которой данные пропадают
совсем. Нужна, когда игру начали не с теми командами.
- «Завершить вечер» — публикует итоги в чат и закрывает
запись. После неё вечер только читается. Появляется она
не раньше первой записанной игры: завершать пустой вечер
нечего.
- «Открыть страницу анонса» (на вкладке «Матч») —
делает ссылку на будущую игру доступной посторонним: дата,
место и число мест. Имён участников там нет. По умолчанию
анонс живёт только в чате команды; закрыть обратно можно
в любой момент, и уже разосланные ссылки погаснут тоже.
Чего на вечере нельзя потерять случайно.
Гол — снимается крестиком и возвращается одним тапом. Вратарь,
автор, пас — правятся сколько угодно. Счёт руками не вводится
нигде: он всегда считается из голов, поэтому «в таблице одно,
у бомбардиров другое» не бывает.
Дальше: Статистика —
куда попадают результаты вечера.