Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Track candy debts for Vietnamese card games by logging bets and settling wins and losses among players
AI summary · README
GamesTypeScript · CSSGitHub @danhtran172OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Sổ ghi kẹo cho nhóm bạn chơi bài ngoài đời: nhập kết quả mỗi ván, app tính lời/lỗ và cách trả kẹo ít lượt nhất.Read the full README ↗
Sổ ghi kẹo cho nhóm bạn chơi bài ngoài đời: nhập kết quả mỗi ván, app tính lời/lỗ và cách trả kẹo ít lượt nhất.
Thiết kế: docs/superpowers/specs/2026-09-29-candypot-design.md
npm install
npm run dev # http://localhost:5173
npm test # test phần tính kẹo (src/core)
npm run build # bản production + service worker trong dist/
powershell -ExecutionPolicy Bypass -File scripts/create-shortcut.ps1
Tạo 3 shortcut trên Desktop: CandyPot (app), CandyPot Demo 6 nguoi (bàn mẫu 6 người, bạn là Minh, đang mở sẵn ván Xì dách — mở /demo?reset=1 để dựng lại từ đầu, /demo?host=1 để lấy lại quyền host mà không mất dữ liệu) và CandyPot Demo (An) (cùng bàn đó nhưng nhìn từ An — mở song song để thử đòi kẹo giữa 2 "máy"; các cửa sổ tự đồng bộ).
Shortcut Bấm vào sẽ tự bật npm run dev (cửa sổ thu nhỏ, nếu chưa chạy) và mở app bằng Edge ở chế độ app, khung 400×880. Sửa code là app tự cập nhật (hot reload). Dữ liệu của cửa sổ này nằm trong profile riêng %LOCALAPPDATA%\CandyPot\browser-profile.
Bản đang chạy: https://candypot.web.app (dự án Firebase candypot-5888e; địa chỉ cũ https://candypot-5888e.web.app vẫn chạy song song — firebase.json deploy cả 2).
Chưa cấu hình thì app vẫn chạy: bàn "Nhiều người join" giả lập trên chính máy đó (các tab thấy nhau). Để join qua mạng:
asia-southeast1) và Build › Authentication › Sign-in method › Anonymous → bật.</>) → lấy config, chép .env.example thành .env.local rồi điền.npx.ps1 thì gõ npx.cmd thay cho npx):npx firebase-tools login
npm run build && npx firebase-tools deploy --only hosting,database --project <project-id>
Phòng lưu chia mẩu (mỗi lần bấm chỉ gửi mẩu vừa đổi, ~1–3 KB); máy ẩn / lâu không dùng tự tạm ngắt kết nối; phòng bỏ không quá 30 ngày tự được dọn. Security rules ở database.rules.json (phòng rooms/{mã 5 số}, phải đăng nhập ẩn danh mới đọc/ghi).
| Thư mục | Nội dung |
|---|---|
src/core/ | Luật game, sổ cái, thuật toán trả kẹo, danh hiệu — thuần TypeScript, có test |
src/storage/ | Lưu trữ (LocalRepo = localStorage) |
src/sync/ | Phòng chơi nhiều máy: FirebaseRoomBackend (Realtime Database) / LocalRoomBackend (giả lập trên máy khi chưa có config) |
src/store/ | State app (Zustand) |
src/ui/ | Màn hình và form nhập ván |