Skip to content

Repository files navigation

Аліяс па-беларуску

Вэб-версія гульні «Аліяс»: адзін гулец тлумачыць слова, каманда адгадвае. 886 беларускіх слоў, ад 1 да 5 каманд, тры ўзроўні складанасці, кірыліца або лацінка. Працуе ў мабільным браўзеры, нічога ставіць не трэба.

Гуляць: https://alias.itbeard.com/

Правілы

  1. Гульцы дзеляцца на каманды (ад 1 да 5) і тлумачаць словы па чарзе.
  2. Адзін гулец бярэ тэлефон і тлумачыць слова з экрана, астатнія ў камандзе адгадваюць.
  3. Нельга называць аднакаранёвыя словы, перакладаць слова на іншую мову і паказваць яго жэстамі.
  4. Адгадалі — Адгадана (ці свайп направа): +1 ачко. Не ведаеце — Пас (свайп налева): −1 ачко, калі ўключаны штраф. Каля рэдкіх слоў ёсць кнопка ? — яна паказвае пераклад.
  5. Раунд доўжыцца зададзены час. Калі ў наладах уключана правіла апошняга слова, пасля сігналу можна дагуляць слова на экране; яго можна аддаць і ўсім камандам — тады ачко атрымлівае тая, што адгадала першай.
  6. Пасля раунда паказваецца спіс слоў — спрэчныя адзнакі выпраўляюцца націскам.
  7. Гульня сканчаецца, калі каманда набірае мэтавы лік; круг дагульваецца, каб ва ўсіх была роўная колькасць раундаў.

Магчымасці

  • 1–5 каманд, назвы выпадкова бяруцца са спіса і перакідваюцца кнопкай з косткай («Вусы Мулявіна», «Карона Вітаўта», «Косы Касцюшкі»…); у кожнай назвы — свой піксельны лагатып: вусы, карона, скрыжаваныя косы ды іншыя. Знак прывязаны да назвы і мяняецца разам з ёй, колер вызначаецца месцам каманды ў спісе. Пры адной камандзе — сола-рэжым. У рэжыме 18+ спіс назваў свой, юрлівы: «Мара Глобуса», «Дудка Багушэвіча», «Першы раз Скарыны»…
  • Тры ўзроўні складанасці + рэжым «усе разам»:
    • лёгкі — 340 канкрэтных штодзённых слоў;
    • сярэдні — 304 паняцці, прафесіі, дзеясловы;
    • складаны — 242 тэрміны і абстракцыі.
  • Рэжым 18+ — асобны слоўнік са 107 слоў беларускай секс-лексікі паводле артыкула MOST, слоўнічкаў «Нашай Нівы», PALATNO і Радыё Свабода: ад «заляцацца» да «шмаравідла». Стаіць апошнім у перамыкачы ўзроўняў, уключаецца пасля пацвярджэння ўзросту і ў «усе разам» не трапляе.
  • Падказка да слова: кнопка «?» паміж «Пас» і «Адгадана» паказвае пад словам пераклад на расейскую (заўсёды кірыліцай) і ангельскую — для таго, хто тлумачыць і сам не ведае слова. Калі прамога перакладу няма («талака», «Дзяды», «варыўня»), замест яго — сціплае тлумачэнне па-беларуску. З новым словам падказка закрываецца, на рахунак не ўплывае. Падказка ёсць толькі да малаўжывальных слоў і да тых, што зусім не падобныя да расейскіх і забываюцца, калі мовай даўно не карыстаўся («пэндзаль», «страўнік», «дыван» — ковёр) — іх 228 на ўсіх узроўнях. Без яе застаюцца словы, якія па-расейску пішуцца амаль гэтаксама («цэп», «бібліятэка», «парадокс»), і відавочныя ці часта ўжываныя («крама», «каханне», «чакаць») — на такіх словах кнопкі няма, а «Пас» і «Адгадана» займаюць усю шырыню. Падказкі выключаюцца ў наладах (па змаўчанні ўключаныя).
  • Кірыліца або лацінка: словы, назвы камандаў, увесь інтэрфейс і загаловак укладкі транслітаруюцца ў беларускую лацінку (Biełaruś, Mahiloŭ, hulnia) паводле класічных правілаў.
  • Светлая і цёмная тэмы (або аўта): стрыманая палітра «лён і чырвань», ромб як знак гульні.
  • Галоўны экран — толькі каманды, узровень слоў і раунд; рэдкія налады (алфавіт, тэма, штраф, апошняе слова, падказкі да слоў, гук, вібрацыя) схаваныя ў шторку за іконкай у шапцы.
  • Налады раунда: час (30/45/60/90 с), мэтавы лік (20/30/50/75), штраф за пас, правіла апошняга слова (па змаўчанні выключанае: раунд сканчаецца разам з сігналам).
  • Агульнае апошняе слова (таксама выключанае па змаўчанні, пераключальнік з’яўляецца разам з правілам апошняга слова): пасля сігналу слова на экране адгадваюць усе каманды. «Адгадана» адкрывае шторку «Хто адгадаў?» — ачко ідзе выбранай камандзе, «Пас» значыць, што не адгадаў ніхто. На экране выніку такое слова падпісанае, а націск на яго дае перавыбраць каманду.
  • Зроблена пад тэлефон: адлік 3‑2‑1 перад раундам, свайп карткі з візуальным адгукам, вялікія кнопкі ў зоне вялікага пальца, абарона ад падвойнага націску, ландшафтная раскладка, шторкі правілаў і налад зачыняюцца змахам уніз, пацверджанне перад завяршэннем гульні (скончыць яе можна і з паўзы пасярод раунда — словы гэтага раунда тады не залічваюцца), гук і вібрацыя, экран не гасне падчас раунда.
  • З ноўтбука: стрэлкі ← → адказваюць, ↑ або «?» адкрывае падказку, прабел ставіць паўзу. Радок са стрэлкамі пад карткай паказваецца толькі на шырокіх экранах — на тэлефоне ён схаваны.
  • Стан гульні захоўваецца ў браўзеры — можна закрыць укладку і вярнуцца, а з наладаў працягнуць незавершаную партыю.
  • Пасля перазагрузкі адказы і вынікі раунда захоўваюцца. Актыўны раунд аднаўляецца на паўзе; калі час ужо выйшаў — прымяняецца правіла апошняга слова. Перад зменай колькасці каманд або пачаткам новай партыі гульня папярэджвае пра скід рахунку.
  • Дадаецца на хатні экран як асобная праграма (PWA-маніфест).

Распрацоўка

npm install
npm run dev            # лакальны сервер
npm test               # тэсты (vitest + testing-library)
npm run test:coverage  # тэсты з пакрыццём
npm run lint           # oxlint
npm run build          # зборка ў dist/
npm run deploy         # ручная публікацыя на GitHub Pages (галіна gh-pages)

Аўтаматызацыя (GitHub Actions)

  • Deploy (.github/workflows/deploy.yml) — пры кожным пушы ў main правярае лінтар і тэсты, збірае праект і публікуе dist/ у галіну gh-pages. Калі праверкі не прайшлі, сайт не абнаўляецца. Можна запусціць і ўручную з укладкі Actions.
  • CI (.github/workflows/ci.yml) — тыя ж праверкі для кожнага pull request, у тым ліку ад Dependabot.
  • Dependabot (.github/dependabot.yml) — штопанядзелка правярае абнаўленні npm-пакетаў і GitHub Actions і адкрывае pull request'ы: React асобнай групай, астатнія дробныя абнаўленні адным PR, мажорныя — паасобку.

Стэк: React 19 + Vite, звычайны JavaScript і CSS, без знешніх бібліятэк у рантайме. Шрыфты (Manrope, Unbounded) убудаваныя ў зборку праз fontsource.

Структура

src/
  data/words.js        слоўнікі па ўзроўнях складанасці
  data/hints.js        падказкі да слоў: пераклады на расейскую і ангельскую або тлумачэнне
  game/                стан гульні (reducer), калода, захаванне, гук, скланенне лічэбнікаў
  i18n/                транслітарацыя ў лацінку і кантэкст алфавіту
  ornament/            піксельныя лагатыпы каманд, матывы арнаменту і SVG-геаметрыя
  hooks/               таймер, свайп карткі, змахванне шторкі, клавіятура, wake lock
  components/          экраны: налады, гатоўнасць, гульня, вынік, фінал; знакі, шторкі
  theme.js             тэма (data-theme, theme-color) і мова дакумента
  test/                наладка vitest, дапаможнікі для таймераў і touch-падзей

Тэсты ляжаць побач з кодам (*.test.js(x)): reducer і калода, транслітарацыя (у тым ліку ўвесь слоўнік), слоўнікі (колькасць, унікальнасць, алфавіт), падказкі (толькі да рэдкіх слоў, не падобных да расейскіх), арнаменты, хукі, кожны экран, поўная партыя праз App і снапшоты экранаў у абодвух алфавітах.

Словы — у файле src/data/words.js, правапіс афіцыйны. Дадаць сваё слова можна ў адпаведны масіў: EASY, MEDIUM ці HARD. Словазлучэнняў у слоўніках няма — толькі асобныя словы. Рэдкаму слову варта дадаць падказку ў src/data/hints.js; падказку да слова, якое па-расейску пішацца амаль гэтаксама, тэст не прапусціць. Новы лагатып каманды — матрыца 15×15 з «X» і «.» у src/ornament/teamLogos.js. Назва і ключ лагатыпа дадаюцца ў FAMILY_TEAM_MOTIFS (або ADULT_TEAM_MOTIFS — для рэжыму 18+) у src/game/constants.js; спісы выпадковых назваў будуюцца з іх.

About

Аліяс па-беларуску — гульня ў тлумачэнне слоў для 1–5 каманд у браўзеры

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages