Dice game — gdice.cc
Vue 3 + Vite
GDice is a dice game for 1–4 players using 5 standard dice (faces 1–6). Players take turns recording scores in each category on the scorecard. The player with the highest total score wins.
Each turn a player gets 3 rolls:
- First roll — roll all 5 dice.
- Second roll — hold any dice, re-roll the rest (may re-roll all 5).
- Third roll — same as second.
After any roll the player may record a score. If scored after the first roll, combination scores are doubled (school scores are never doubled).
The scorecard has two sections: School (upper) and Combinations (lower).
Six categories, one per face value: Ones, Twos, Threes, Fours, Fives, Sixes.
- You pick a grade indicating how many dice matched that face value:
- C = 2 dice
- B = 3 dice
- A = 4 dice
- S = 5 dice
- Score = face value × number of dice (e.g. Fours with grade B = 4 × 3 = 12)
Graduation bonus (+50 pts): Awarded only if ALL three conditions are met:
- All 6 school categories are filled (no empty slots)
- Every category has at least grade C (2+ dice)
- School subtotal ≥ 63 points
| # | Name | What you need | Max |
|---|---|---|---|
| 1 | Pair | 2 of a kind | 12 |
| 2 | Two Pairs | 2 + 2 of a kind | 22 |
| 3 | Triangle | 3 of a kind | 18 |
| 4 | Square | 4 of a kind | 24 |
| 5 | Poker | 5 of a kind | 30 |
| 6 | Full House | 3 of a kind + 2 of a kind | 28 |
| 7 | Small Straight | 1-2-3-4-5 | 15 |
| 8 | Big Straight | 2-3-4-5-6 | 20 |
| 9 | Summa | Any 5 dice | 30 |
- Full House: The triple is scored first, then the pair. Order matters.
- Summa: Acts as a "chance" — any roll counts, score = sum of all 5 dice.
- Max values shown are before doubling.
- Double: Any combination (not school) score is doubled when scored on the first roll (see Turn Flow).
- Strike out: Any category can be struck out (❌) for 0 points, useful when you can't fill it.
- Reset: Clears the current dice selection so you can start over or strike out instead.
Total score = school subtotal + graduation bonus (if earned) + all combination scores. Highest total wins.
nvm use
npm install
npm run dev
# http://localhost:5173/
# http://localhost:5173/?debug
# http://localhost:5173/?debug&freshDocker runs a clean Node 24 install, the unit and Playwright suites, the production Vite build, and nginx with SPA fallback:
docker compose up --build
# http://localhost:4173/Stop with Ctrl+C, then remove the local container and network:
docker compose down- Production:
mainbranch withDEPLOY_ENV=prod. - DEV:
devbranch withDEPLOY_ENV=dev. - Production remains indexable. DEV emits
robots.txtwithDisallow: /and anoindex,nofollow,noarchivemeta tag. DEPLOY_ENVis build configuration, not a secret. An unset value defaults to production; unsupported values fail the build.- DigitalOcean App Platform build:
npm ci && npm run build; output:dist; catch-all document:index.html.
To verify the DEV image:
$env:DEPLOY_ENV = 'dev'
docker compose up --build- 0.8 - Mar '26 - store tests, bug fixes, score editor improvements
- 0.7 - Feb '26 - modal system, score editor, Pinia refactor
- 0.6 - Feb '26 - Node 24 LTS, cleanup
- 0.5 - Feb '26 - migrate from Heroku to DigitalOcean, Nginx + SSL
- 0.4 - Mar '24 - footer, header, navigation, config
- 0.3 - Feb '24 - add Pinia, lodash, smart UI
- 0.2 - Jan '24 - add bootstrap, transpose
- 0.1 - Jan '24 - Puerto Rico