Hệ thống sử dụng mã định danh GameCode để tự động cấu hình giao diện (UI) và logic xử lý (UX) cho các trò chơi giáo dục. Việc chuẩn hóa này giúp lập trình viên Frontend và Backend làm việc nhất quán.
Hệ thống sử dụng Regex để bóc tách các chỉ số từ chuỗi định dạng:
/^G([1-5])(\d{1,2})([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/
| Ký tự | Ý nghĩa | Giá trị |
|---|---|---|
| G | Header | Bắt buộc cho mọi Game |
| Category | Dòng Game chính | 1: Quiz, 2: Sequences, 3: Matching |
| Count | Số lượng Item | 2-99 (Số options hoặc số mảnh ghép) |
| Q (Question) | Loại câu hỏi | 0: Text, 1: Image, 2: Audio |
| O (Options) | Loại đáp án | 0: Text, 1: Image, 2: Audio |
| S (Shuffle) | Xáo trộn | 0: Không, 1: Có (Mặc định) |
| T (Time) | Thời gian | 0: Không giới hạn, >0: Số giây |
Dữ liệu data phải chứa đầy đủ thông tin hiển thị và trợ giúp (hint).
{
"gameCode": "G2510S1T30",
"description": "Mô tả bài học",
"data": {
"request": "Yêu cầu hành động hiển thị lên UI",
"question": "Nội dung câu hỏi (URL hoặc Text)",
"options": ["Mảng dữ liệu tương tác"],
"hint": {
"type": "display | text | audio | index",
"value": "Giá trị gợi ý tương ứng với type"
}
},
"answer": "Giá trị chính xác để so sánh (String/Array)"
}
G1301 (3 Options, Q: Text, O: Image)options).G2(n)10 (n mảnh ghép, Q: Image, O: Text)["A", "P", "P", "L", "E"]).["BUT", "TER", "FLY"]).G3410 (Nối 4 cặp Hình - Chữ)hint được định nghĩa đầy đủ dưới dạng Object trong data để UI xác định phương thức hỗ trợ người chơi.
| Type | Ý nghĩa | Ví dụ giá trị value |
|---|---|---|
display |
Điền sẵn mẫu (Masking) | ["A", "_", "_", "L", "E"] |
text |
Gợi ý bằng văn bản | "Quả này có màu đỏ và rất giòn" |
audio |
Gợi ý bằng âm thanh | "https://cdn.link/hint_audio.mp3" |
index |
Khóa vị trí đúng (Lock) | [0, 2] (Khóa vị trí 1 và 3) |
[!IMPORTANT]
Xử lý String cho G2: Trước khi gọisdk.end(), bạn phải nối mảng các mảnh ghép người dùng đã sắp xếp thành một chuỗi duy nhất, phân tách bằng dấu gạch đứng|.
Ví dụ:I|like|to|eat|apples.
[!TIP]
Tối ưu cho IOT (32nm): > * Đối với các dòng chip 32nm có tài nguyên RAM hạn chế, hãy ưu tiên sử dụnghintdạngindexhoặcdisplayđơn giản để tránh việc xử lý các chuỗi văn bản (String) dài trong runtime.
- Đảm bảo các URL hình ảnh/âm thanh đã được nén tối ưu (WebP/MP3) trước khi đưa vào cấu hình JSON.
Last Updated: 2026-01-26
Author: Sena AI Team