{ "game_types": [ { "name": "Quiz - Trắc nghiệm", "description": "Câu hỏi trắc nghiệm với các lựa chọn, chọn 1 đáp án đúng", "game_mechanics": { "cách_chơi": "Người chơi đọc câu hỏi và chọn 1 trong các đáp án", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh đáp án người chơi chọn với trường 'answer'" }, "base_schema": { "question": { "type": "string", "nullable": false, "mô_tả": "Nội dung câu hỏi, dùng ____ cho chỗ trống" }, "request": { "type": "string", "nullable": false, "mô_tả": "Yêu cầu (VD: 'Chọn đáp án đúng', 'Điền vào chỗ trống')" }, "answer": { "type": "string", "nullable": false, "mô_tả": "Đáp án đúng" }, "options": { "type": "array", "nullable": false, "mô_tả": "Danh sách các lựa chọn (2-4 options)" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh minh họa" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh để trả lời" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Quiz Text Only", "mô_tả": "Câu hỏi văn bản thuần túy, không có hình ảnh", "required_fields": [ "question", "request", "answer", "options" ], "example": { "question": "Con hươu cao cổ có cổ ____.", "request": "Điền vào chỗ trống", "answer": "dài", "options": [ "dài", "ngắn", "to" ] } }, { "name": "Quiz với Hình ảnh", "mô_tả": "Câu hỏi đi kèm hình ảnh minh họa bắt buộc phải xem", "required_fields": [ "question", "request", "answer", "options", "image_url", "is_required_image" ], "example": { "question": "Đây là con gì?", "request": "Nhìn tranh và chọn đáp án đúng", "answer": "mèo", "options": [ "chó", "mèo", "thỏ" ], "image_url": "https://example.com/cat.jpg", "is_required_image": true } } ] }, { "name": "Sequence - Sắp xếp thứ tự", "description": "Sắp xếp các từ/câu theo đúng thứ tự", "game_mechanics": { "cách_chơi": "Người chơi kéo thả hoặc chọn thứ tự các phần tử", "cách_tính_điểm": "Đúng toàn bộ = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh thứ tự người chơi sắp với 'sentence' hoặc 'word'" }, "base_schema": { "word": { "type": "string", "nullable": true, "mô_tả": "Từ/cụm từ đúng (dùng khi sub_type='word')" }, "sentence": { "type": "string", "nullable": true, "mô_tả": "Câu hoàn chỉnh đúng (dùng khi sub_type='sentence')" }, "parts": { "type": "array", "nullable": false, "mô_tả": "Mảng các phần tử theo thứ tự xáo trộn từ đề bài gốc" }, "is_scrambled": { "type": "boolean", "nullable": false, "mô_tả": "true = đề bài đã xáo trộn, cần sắp xếp lại" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh gợi ý" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Sắp xếp câu (Sentence Scramble)", "mô_tả": "Sắp xếp các từ rời rạc thành câu hoàn chỉnh", "required_fields": [ "sentence", "parts", "is_scrambled" ], "note": "parts lấy theo thứ tự xáo trộn trong đề gốc", "example": { "sentence": "Apple is red.", "parts": [ "red", "is", "Apple" ], "is_scrambled": true } }, { "name": "Sắp xếp chữ cái (Word Scramble)", "mô_tả": "Sắp xếp các chữ cái rời rạc thành từ hoàn chỉnh", "required_fields": [ "word", "parts", "is_scrambled" ], "example": { "word": "banana", "parts": [ "b", "a", "n", "a", "n", "a" ], "is_scrambled": true } } ] }, { "name": "True/False - Đúng/Sai", "description": "Xác định câu phát biểu là đúng hay sai", "game_mechanics": { "cách_chơi": "Người chơi đọc câu phát biểu và chọn Đúng hoặc Sai", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh lựa chọn người chơi với trường 'is_true'" }, "base_schema": { "statement": { "type": "string", "nullable": false, "mô_tả": "Câu phát biểu cần xác định đúng/sai" }, "is_true": { "type": "boolean", "nullable": false, "mô_tả": "true nếu câu đúng, false nếu sai" }, "true_label": { "type": "string", "nullable": false, "default": "True", "mô_tả": "Nhãn nút Đúng (VD: 'Đúng', 'Yes')" }, "false_label": { "type": "string", "nullable": false, "default": "False", "mô_tả": "Nhãn nút Sai (VD: 'Sai', 'No')" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Đúng/Sai Text", "mô_tả": "Câu phát biểu văn bản thuần túy", "required_fields": [ "statement", "is_true", "true_label", "false_label" ], "example": { "statement": "Bầu trời màu xanh.", "is_true": true, "true_label": "Đúng", "false_label": "Sai" } }, { "name": "Đúng/Sai với Hình ảnh", "mô_tả": "Xác định đúng/sai dựa trên hình ảnh", "required_fields": [ "statement", "is_true", "true_label", "false_label", "image_url", "is_required_image" ], "example": { "statement": "Đây là quả táo.", "is_true": true, "true_label": "Đúng", "false_label": "Sai", "image_url": "https://example.com/apple.jpg", "is_required_image": true } } ] }, { "name": "Matching - Nối đôi", "description": "Nối các cặp tương ứng với nhau", "game_mechanics": { "cách_chơi": "Người chơi kéo nối hoặc chọn cặp tương ứng giữa 2 cột", "cách_tính_điểm": "Mỗi cặp đúng = 1 điểm", "xác_định_đáp_án": "So sánh cặp left-right người chơi nối với mảng 'pairs'" }, "base_schema": { "pairs": { "type": "array", "nullable": false, "mô_tả": "Danh sách các cặp nối (min 2, max 10)", "item_schema": { "left": { "text": { "type": "string", "nullable": true, "mô_tả": "Nội dung text cột trái" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh cột trái" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" } }, "right": { "text": { "type": "string", "nullable": true, "mô_tả": "Nội dung text cột phải" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh cột phải" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" } } } }, "mode": { "type": "enum", "nullable": false, "values": [ "text_to_text", "text_to_image", "image_to_image", "mixed" ], "mô_tả": "Loại nối đôi" }, "left_label": { "type": "string", "nullable": false, "default": "Column A", "mô_tả": "Tên cột trái" }, "right_label": { "type": "string", "nullable": false, "default": "Column B", "mô_tả": "Tên cột phải" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Nối Text - Text", "mô_tả": "Nối 2 cột văn bản (câu hỏi-đáp án, từ-nghĩa)", "required_fields": [ "pairs", "mode", "left_label", "right_label" ], "note": "Cả left và right đều dùng field 'text'", "example": { "pairs": [ { "left": { "text": "Thủ đô của Pháp?" }, "right": { "text": "Paris" } }, { "left": { "text": "Màu của bầu trời?" }, "right": { "text": "Xanh" } } ], "mode": "text_to_text", "left_label": "Câu hỏi", "right_label": "Đáp án" } }, { "name": "Nối Text - Hình ảnh", "mô_tả": "Nối từ với hình ảnh tương ứng", "required_fields": [ "pairs", "mode", "left_label", "right_label" ], "note": "left dùng 'text', right dùng 'image_url' + 'image_description'", "example": { "pairs": [ { "left": { "text": "Apple" }, "right": { "image_url": "https://example.com/apple.jpg", "image_description": "Quả táo đỏ" } } ], "mode": "text_to_image", "left_label": "Từ vựng", "right_label": "Hình ảnh" } }, { "name": "Nối Hình ảnh - Hình ảnh", "mô_tả": "Nối 2 hình ảnh có liên quan với nhau", "required_fields": [ "pairs", "mode", "left_label", "right_label" ], "note": "Cả left và right đều dùng 'image_url' + 'image_description'", "example": { "pairs": [ { "left": { "image_url": "https://example.com/cat.jpg", "image_description": "Con mèo" }, "right": { "image_url": "https://example.com/fish.jpg", "image_description": "Con cá" } } ], "mode": "image_to_image", "left_label": "Động vật", "right_label": "Thức ăn yêu thích" } } ] }, { "name": "Odd One Out - Chọn từ khác loại", "description": "Chọn từ khác biệt nhất trong nhóm", "game_mechanics": { "cách_chơi": "Người chơi nhìn nhóm từ và chọn từ không cùng loại", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh lựa chọn với trường 'answer'" }, "base_schema": { "options": { "type": "array", "nullable": false, "min": 3, "max": 6, "mô_tả": "Danh sách 3-6 từ để chọn" }, "answer": { "type": "string", "nullable": false, "mô_tả": "Từ khác loại (đáp án) - phải nằm trong options" }, "reason": { "type": "string", "nullable": false, "mô_tả": "Lý do tại sao đáp án khác biệt" }, "category": { "type": "string", "nullable": false, "mô_tả": "Danh mục của các từ CÒN LẠI (không phải đáp án)" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Chọn từ khác loại - Text", "mô_tả": "Nhóm từ văn bản, chọn từ khác biệt", "required_fields": [ "options", "answer", "reason", "category" ], "example": { "options": [ "chó", "mèo", "táo", "chim" ], "answer": "táo", "reason": "Các từ khác là động vật, táo là hoa quả", "category": "động vật" } } ] }, { "name": "Fill Blank - Điền vào chỗ trống", "description": "Điền từ/chữ cái còn thiếu", "game_mechanics": { "cách_chơi": "Người chơi gõ từ/chữ cái vào chỗ trống", "cách_tính_điểm": "Mỗi chỗ trống đúng = 1 điểm", "xác_định_đáp_án": "So sánh input người chơi với mảng 'answers' theo thứ tự" }, "base_schema": { "question": { "type": "string", "nullable": false, "mô_tả": "Câu/từ với ____ đánh dấu chỗ trống" }, "answers": { "type": "array", "nullable": false, "mô_tả": "Danh sách đáp án theo thứ tự chỗ trống" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh gợi ý" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Điền từ - Gõ tay", "mô_tả": "Tự gõ từ vào chỗ trống (không có gợi ý)", "required_fields": [ "question", "answers" ], "example": { "question": "Việt Nam có thủ đô là ____.", "answers": [ "Hà Nội" ] } }, { "name": "Điền chữ cái - Spelling", "mô_tả": "Điền chữ cái còn thiếu trong từ, thường kèm hình ảnh gợi ý", "required_fields": [ "question", "answers", "image_url", "is_required_image" ], "example": { "question": "A____ple", "answers": [ "p" ], "image_url": "https://example.com/apple.jpg", "is_required_image": true } } ] }, { "name": "Circle Word - Khoanh tròn từ đúng", "description": "Chọn từ đúng trong các tùy chọn nằm trong câu", "game_mechanics": { "cách_chơi": "Người chơi đọc câu và click/chọn từ đúng trong ngoặc", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh từ người chọn với trường 'answer'" }, "base_schema": { "sentence_template": { "type": "string", "nullable": false, "mô_tả": "Câu với ____ đánh dấu vị trí cần chọn từ" }, "options": { "type": "array", "nullable": false, "min": 2, "max": 2, "mô_tả": "Các từ để chọn (2 từ)" }, "answer": { "type": "string", "nullable": false, "mô_tả": "Từ đúng - phải nằm trong options" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh gợi ý" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Khoanh tròn từ - Ngữ pháp", "mô_tả": "Chọn từ đúng ngữ pháp trong câu (2 lựa chọn)", "required_fields": [ "sentence_template", "options", "answer" ], "example": { "sentence_template": "You should speak ____ to your teacher.", "options": [ "politely", "loudly" ], "answer": "politely" } } ] }, { "name": "Drag Drop - Kéo thả đáp án", "description": "Kéo thả đáp án đúng vào chỗ trống", "game_mechanics": { "cách_chơi": "Người chơi kéo từ từ danh sách options vào chỗ trống trong câu", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh từ người kéo vào với trường 'answer'" }, "base_schema": { "question": { "type": "string", "nullable": false, "mô_tả": "Câu với ____ đánh dấu chỗ trống" }, "instruction": { "type": "string", "nullable": false, "default": "Drag the correct answer", "mô_tả": "Hướng dẫn cho người chơi" }, "options": { "type": "array", "nullable": false, "min": 2, "mô_tả": "Danh sách từ để kéo thả" }, "answer": { "type": "string", "nullable": false, "mô_tả": "Đáp án đúng - phải nằm trong options" }, "image_url": { "type": "string", "nullable": true, "mô_tả": "URL hình ảnh gợi ý" }, "image_description": { "type": "string", "nullable": true, "mô_tả": "Mô tả hình ảnh" }, "is_required_image": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = bắt buộc xem ảnh" }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Kéo thả - Text Only", "mô_tả": "Kéo từ vào câu, không có hình ảnh", "required_fields": [ "question", "instruction", "options", "answer" ], "example": { "question": "He can ____.", "instruction": "Hoàn thành câu", "options": [ "run", "swim", "read" ], "answer": "run" } }, { "name": "Kéo thả - Với Hình ảnh", "mô_tả": "Nhìn hình và kéo từ đúng vào chỗ trống", "required_fields": [ "question", "instruction", "options", "answer", "image_url", "is_required_image" ], "example": { "question": "She can ____.", "instruction": "Nhìn tranh và hoàn thành câu", "options": [ "run", "swim", "read" ], "answer": "read", "image_url": "https://example.com/girl_reading.jpg", "is_required_image": true } } ] }, { "name": "Quiz Image - Chọn hình đúng", "description": "Chọn hình ảnh đúng dựa trên câu hỏi", "game_mechanics": { "cách_chơi": "Người chơi đọc câu hỏi và click vào hình ảnh đúng", "cách_tính_điểm": "Đúng = 1 điểm, Sai = 0 điểm", "xác_định_đáp_án": "So sánh id hình người chọn với option có is_correct=true" }, "base_schema": { "question": { "type": "string", "nullable": false, "mô_tả": "Câu hỏi yêu cầu chọn hình" }, "options": { "type": "array", "nullable": false, "min": 2, "max": 4, "mô_tả": "Danh sách hình ảnh để chọn", "item_schema": { "id": { "type": "number", "nullable": false, "mô_tả": "Index của option (0-3)" }, "image_url": { "type": "string", "nullable": false, "mô_tả": "URL hình ảnh" }, "image_description": { "type": "string", "nullable": false, "mô_tả": "Mô tả nội dung hình ảnh" }, "is_correct": { "type": "boolean", "nullable": false, "mô_tả": "true nếu đây là đáp án đúng" }, "text_label": { "type": "string", "nullable": true, "mô_tả": "Nhãn hiển thị dưới hình (optional)" } } }, "is_example": { "type": "boolean", "nullable": false, "default": false, "mô_tả": "true = đây là câu mẫu" } }, "variants": [ { "name": "Chọn hình - Text Question", "mô_tả": "Đọc câu hỏi văn bản và chọn hình ảnh đúng", "required_fields": [ "question", "options" ], "note": "Chính xác 1 option phải có is_correct=true", "example": { "question": "Đâu là quả táo?", "options": [ { "id": 0, "image_url": "https://example.com/apple.jpg", "image_description": "Quả táo đỏ", "is_correct": true, "text_label": null }, { "id": 1, "image_url": "https://example.com/banana.jpg", "image_description": "Quả chuối vàng", "is_correct": false, "text_label": null }, { "id": 2, "image_url": "https://example.com/orange.jpg", "image_description": "Quả cam", "is_correct": false, "text_label": null } ] } } ] } ], "excluded_games": [ { "name": "Writing - Viết tự do", "lý_do_loại_bỏ": "Không thể xác định đáp án đúng/sai bằng thuật toán, cần AI hoặc người chấm manual" }, { "name": "Voice/Audio Games", "lý_do_loại_bỏ": "Chưa hỗ trợ xử lý giọng nói/audio, tất cả các trường audio_* đã được loại bỏ" } ], "notes": { "is_required_image": "true = bắt buộc phải có và xem hình ảnh để chơi game, false = hình ảnh chỉ là minh họa hoặc không có", "blank_format": "Sử dụng ____ (4 gạch dưới) cho chỗ trống trong câu hỏi", } }