Files
open-claw-team/.openclaw/workspace/projects/lotto-game/PRD.md
T

170 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lô Tô Online — Product Requirements Document (PRD)
---
## 1. Vision
Mang trải nghiệm **Lô Tô truyền thống miền Nam** lên nền tảng Zalo Mini App với phong cách hoài niệm tuổi thơ: giấy cũ ố vàng, rổ tre, túi vải đen đựng số, hạt gạo đặt lên vé. Người chơi tự tay bấm đặt hạt gạo — đúng sai tự chịu, giữ nguyên cảm giác hồi hộp của Lô Tô đời thực.
**MVP đầu tiên** sẽ chạy trên **web (mobile-first)** để thử nghiệm, sau đó chuyển sang **Zalo Mini App** khi ổn định.
---
## 2. Target Users
| Persona | Mô tả |
|---|---|
| Người Việt 2045 tuổi | Lớn lên với Lô Tô, muốn hoài niệm |
| Nhóm bạn / gia đình | Chơi giải trí online cùng nhau |
| Casual gamer | Thích game đơn giản, may rủi, vui nhộn |
---
## 3. Core Game Rules (Lô Tô truyền thống)
### 3.1 Vé Lô Tô
- Bảng **3 hàng × 9 cột** = 27 ô
- Mỗi hàng có đúng **5 ô số** + 4 ô trống
- Số từ **190**, mỗi cột chứa số thuộc hàng chục tương ứng (cột 1: 19, cột 2: 1019, …, cột 9: 8090)
- Mỗi vé có **15 số** duy nhất, không trùng
### 3.2 Lượt chơi
1. Hệ thống **lắc túi vải****bốc 1 viên số** ngẫu nhiên (190, không lặp)
2. Hiển thị animation bốc số + **đọc số bằng giọng miền Nam**
3. Người chơi có **15 giây** (cài đặt khi tạo phòng) để **tự bấm đặt hạt gạo** vào ô tương ứng
4. Hết thời gian highlight → người hô đọc số tiếp, **không chờ** ai
5. Người chơi vẫn có thể **đặt muộn** (theo trí nhớ) bất cứ lúc nào
### 3.3 Điều kiện "Kinh" (Thắng)
- Hoàn thành **1 hàng ngang** (5/5 ô số trong hàng đều có hạt gạo)
-**"Kinh!"** → hệ thống verify
### 3.4 Verify & Phạt
| Trường hợp | Kết quả |
|---|---|
| Tất cả hạt gạo đúng ô đã bốc | ✅ **Thắng** — nhận tiền thưởng từ tất cả người thua. Nếu có nhiều người cùng Kinh đúng ở một lượt, tiền thưởng được **chia đều** |
| Có ≥1 hạt gạo đặt nhầm ô (ô chưa được bốc) | ❌ **Phạt** — đền bằng **mức cược của phòng** cho **mỗi** người chơi còn lại |
### 3.5 Kết thúc ván
- Khi có người **kinh hợp lệ** → ván kết thúc (hoặc kết thúc lượt bốc hiện tại để xét những người kinh cùng lúc)
- Hoặc khi bốc hết 90 số mà chưa ai kinh → hoà (trả lại cược)
---
## 4. Features
### 4.1 Lobby & Phòng chơi
| Feature | Chi tiết |
|---|---|
| Lobby công khai | Danh sách phòng đang chờ, lọc theo mức cược |
| Tạo phòng | Chủ phòng cài đặt: mức cược, thời gian highlight (15s), số người (28) |
| Vào phòng | Click vào phòng trong lobby |
| Chờ & sẵn sàng | Tất cả sẵn sàng → bắt đầu |
| Rời phòng | Rời giữa chừng = bỏ cuộc, mất cược |
### 4.2 Gameplay
| Feature | Chi tiết |
|---|---|
| Lắc túi vải | Animation túi vải đen mềm mại + vật lý khi lắc |
| Bốc số | Animation tay rút viên số từ túi ra |
| Đọc số | Giọng đọc miền Nam truyền thống |
| Đặt hạt gạo | Click vào ô trên vé → hạt gạo rơi xuống (animation) |
| Đặt muộn | Vẫn bấm được sau khi hết highlight |
| Hô kinh | Nút hô kinh khi nghĩ mình hoàn thành hàng |
| Verify | Hệ thống kiểm tra → thắng hoặc phạt |
### 4.3 Economy (Hệ thống tiền tệ)
| Feature | Chi tiết |
|---|---|
| Đơn vị tiền | **"Đồng"** (xu ảo) |
| Nhận đồng miễn phí | Sự kiện hàng ngày, nhiệm vụ, hoạt động |
| Nạp tiền | Mua đồng bằng tiền thật (IAP / Zalo Pay) |
| Cược | Đặt cược khi vào phòng |
| Thắng | Nhận cược từ tất cả người chơi thua |
| Phạt kinh sai | Trả mức cược × số người chơi còn lại |
### 4.4 Profile & Xếp hạng
| Feature | Chi tiết |
|---|---|
| Đăng nhập Zalo | Dùng Zalo account, lấy avatar + tên |
| Profile | Tổng đồng, số ván thắng/thua, tỷ lệ thắng |
| Lịch sử chơi | Danh sách ván đã chơi, kết quả, thời gian |
| Bảng xếp hạng | Theo tổng đồng kiếm được |
### 4.5 Social (Trong phòng)
| Feature | Chi tiết |
|---|---|
| Chat | Nhắn tin trong phòng chơi |
| Reactions / Emoji | Gửi emoji nổi lên màn hình |
### 4.6 Audio
| Feature | Chi tiết |
|---|---|
| Giọng đọc số | Giọng miền Nam, đọc từng số theo kiểu lô tô |
| Nhạc nền | Vui tươi, gợi hoài niệm tuổi thơ |
| SFX — đặt hạt gạo | Tiếng gạo rơi nhẹ |
| SFX — đợi | Tiếng hò reo nhỏ, xì xào khi đợi |
| SFX — kinh | La lên, pháo hoa, reo hò |
| SFX — kinh sai | Tiếng thở dài, ồ tiếc nuối |
---
## 5. Art Direction (Phong cách hoài niệm)
| Yếu tố | Chi tiết |
|---|---|
| **Nền** | Giấy cũ ố vàng, texture gỗ mộc |
| **Vé lô tô** | Giấy carton cũ, viền tròn, chữ in mờ kiểu cũ |
| **Túi số** | Vải đen mềm, animation vật lý khi lắc |
| **Viên số** | Bi gỗ tròn, khắc số đỏ |
| **Hạt gạo** | Hạt gạo trắng thật, có bóng đổ nhẹ |
| **Rổ tre** | Đựng các viên số đã bốc |
| **Font** | Handwritten / retro Việt Nam |
| **Màu chủ đạo** | Nâu gỗ, vàng ố, đỏ đất, xanh lá cũ |
---
## 6. Platform & Technical Constraints
| Hạng mục | Chi tiết |
|---|---|
| **MVP platform** | Web (mobile-first), responsive cho điện thoại |
| **Production platform** | Zalo Mini App |
| **Multiplayer** | Real-time (WebSocket) |
| **Min players** | 2 |
| **Max players** | 8 |
| **Target device** | Mobile only |
---
## 7. Out of Scope (v1)
- Tablet / Desktop optimized layout
- Tournament mode
- Friend list / invite via Zalo
- Spectator mode
- AI bot players
- Multiple vé per player
---
## 8. Success Metrics
| Metric | Target |
|---|---|
| Prototype hoàn chỉnh | Full gameplay + multiplayer + animation + audio |
| Latency bốc số → hiện | < 200ms |
| Animation FPS | ≥ 30fps trên mid-range phone |
| Ván chơi trung bình | 38 phút |