Skip to content

Repository files navigation

GDice

Dice game — gdice.cc

Vue 3 + Vite

Game Rules

Overview

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.

Turn Flow

Each turn a player gets 3 rolls:

  1. First roll — roll all 5 dice.
  2. Second roll — hold any dice, re-roll the rest (may re-roll all 5).
  3. 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).

Scorecard

The scorecard has two sections: School (upper) and Combinations (lower).

School (Upper Section)

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:

  1. All 6 school categories are filled (no empty slots)
  2. Every category has at least grade C (2+ dice)
  3. School subtotal ≥ 63 points

Combinations (Lower Section)

# 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.

Scoring Mechanics

  • 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.

Winning

Total score = school subtotal + graduation bonus (if earned) + all combination scores. Highest total wins.

Local Dev

nvm use
npm install
npm run dev
# http://localhost:5173/
# http://localhost:5173/?debug
# http://localhost:5173/?debug&fresh

Reproducible Deployment Verification

Docker 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

Deployment Environments

  • Production: main branch with DEPLOY_ENV=prod.
  • DEV: dev branch with DEPLOY_ENV=dev.
  • Production remains indexable. DEV emits robots.txt with Disallow: / and a noindex,nofollow,noarchive meta tag.
  • DEPLOY_ENV is 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

Versions

  • 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

About

GDice app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages