# BauCuaBoard
Bàn cược Bầu Cua 6 ô linh vật Bầu · Cua · Tôm · Cá · Gà · Nai: ảnh, tên, badge tiền đã cược, nút bớt cược và ô trúng ×1/×2/×3 sau khi mở bát.
## Khi nào dùng
- Màn minigame Bầu Cua Trân Châu: bấm một ô để đặt chip đang chọn (`BetChips`) lên linh vật đó.
- Ghép với `MinigameWallet` (đầu trang), `DiceBowl` (cột phải), `BetChips`, `MinigameResult`.
- Chỉ hiển thị cược và kết quả do code truyền vào, không có logic tỉ lệ hay trả thưởng.
## Biến thể
| Biến thể | Lớp | Dùng khi |
|---|---|---|
| Khung thẻ | `tt-mgframe` | Khung ngoài chung của hai minigame (nền `panel`, viền `counter` 3.5px, bo 22px, bóng `shadow-modal`, rộng tối đa 480px); bọc ví, bàn, chip, nút phụ và banner |
| Bố cục chính | `tt-baucua` | Lưới bàn cược 1fr + cột đĩa 125px (110px ở màn ≤ 380px) |
| Bàn | `tt-baucua__board` | Lưới 2 cột × 3 hàng, nền `bg`, viền `counter` 2.5px |
| Ô | `tt-baucua__cell` | Bọc nút ô, badge và nút bớt; `data-id` = `bau`, `cua`, `ga`, `tom`, `nai`, `ca` |
| Hàng nút phụ | `tt-baucua__actions` + `tt-baucua__action` | Chọn lại, Nhân đôi ×2 (`.bc-sub-btn`) |
## Cấu trúc
```html
50k
…
```
Thứ tự ô trong lưới (hàng ngang): Bầu · Cua / Gà · Tôm / Nai · Cá. Ảnh linh vật nằm trong `assets/Minigame/`; tên đã có chữ nên ảnh `alt=""`.
## Trạng thái
| Trạng thái | Hiệu ứng |
|---|---|
| Chưa cược | Badge và nút bớt `hidden` |
| Đã cược | Badge `warn` góc phải trên ghi số tiền; nút bớt tròn góc trái trên |
| Hover | Ô nhấc 2px, viền `pink` |
| `is-hit` (trúng) | Viền `gold`, vòng `gold` 3px, nền vàng nhạt, nhịp phóng .6s, chữ "×2" cạnh tên |
| `disabled` (đang lắc) | Mờ 50%, không bấm được |
## Hành vi JS
`TTMU.bauCuaBoard(root, { onBet, onUndo })` gắn một lần lên `.tt-baucua__board` (gắn lần hai trả về `null`), trả về `{ setBet, setHits, setDisabled, destroy }`.
- `onBet(id)` khi bấm ô, `onUndo(id)` khi bấm nút bớt: chỉ khi người dùng thao tác, bạn tự tính số tiền theo chip đang chọn.
- `setBet(id, amount)` cập nhật badge và nhãn đọc; `setHits({ bau: 2, ca: 1 })` hiện ô trúng và "×n"; `setHits(null)` xoá; `setDisabled(true)` khoá khi đang lắc. Các hàm này không gọi callback.
```js
var board = TTMU.bauCuaBoard(document.querySelector('.tt-baucua__board'), {
onBet: function (id) { bets[id] += chipValue; board.setBet(id, bets[id]); }
});
board.setHits({ bau: 1, cua: 1, tom: 1 }); // lúc mới vào, như game: đĩa mở sẵn Bầu, Cua, Tôm
```
Vì `DiceBowl` mở sẵn (xem README của nó), ô Bầu · Cua · Tôm sáng ngay từ đầu; bắt đầu lượt mới thì `setHits(null)`, `setDisabled(true)` rồi `bowl.roll(faces)`. Khung `tt-mgframe` là khối chung: `MinigameWallet` có mục "Khung thẻ" mô tả.
## Token sử dụng
`bg`, `counter`, `die-face`, `tile-line`, `tile-win`, `stage-ink`, `gold`, `pink`, `warn`, `on-fill`, `panel`, `ink`, `outline`, `radius-8/10/12/16/round`, `space-6/8/10`.
## Khả năng tiếp cận
- Mỗi ô là `