diff --git a/www/html/Admin/admin.css b/www/html/Admin/admin.css
index e3c8c05..e9682a3 100644
--- a/www/html/Admin/admin.css
+++ b/www/html/Admin/admin.css
@@ -2007,6 +2007,10 @@ code {
flex-direction: column;
gap: 0.65rem;
}
+/* ตัวกรองหมวด: ซ่อนแถวที่ไม่ตรงหมวด (display:flex ด้านบนทับ [hidden] ของ UA ต้อง override) */
+.qb-battle-block[hidden] {
+ display: none !important;
+}
.qb-battle-block-head {
display: flex;
diff --git a/www/html/Admin/admin.js b/www/html/Admin/admin.js
index 6272f8c..e7927d9 100644
--- a/www/html/Admin/admin.js
+++ b/www/html/Admin/admin.js
@@ -2108,7 +2108,7 @@
}
}
return {
- categoryId: catSel && catSel.value ? catSel.value : 'cybercrime',
+ categoryId: catSel && catSel.value ? catSel.value : 'topic1',
text: qInp && qInp.value ? String(qInp.value).trim() : '',
choices: [
a0 && a0.value ? String(a0.value).trim() : '',
@@ -2141,7 +2141,7 @@
'การใช้ WI-FI สาธารณะเพื่อดูข่าว',
'การอัปเดตซอฟต์แวร์เพื่อความปลอดภัย',
];
- hudCat.textContent = d ? qbBattleCategoryLabel(d.categoryId) : qbBattleCategoryLabel('cybercrime');
+ hudCat.textContent = d ? qbBattleCategoryLabel(d.categoryId) : qbBattleCategoryLabel('topic1');
qtext.textContent = d && d.text ? d.text : defQ;
var ch = d ? d.choices : defC;
for (var s = 0; s < 3; s++) {
@@ -2191,7 +2191,7 @@
var uid = 'r' + Math.random().toString(36).slice(2, 10);
var block = document.createElement('div');
block.className = 'qb-battle-block';
- block.setAttribute('data-category', q.categoryId || 'cybercrime');
+ block.setAttribute('data-category', q.categoryId || 'topic1');
var head = document.createElement('div');
head.className = 'qb-battle-block-head';
@@ -2205,7 +2205,7 @@
var o = document.createElement('option');
o.value = c.id;
o.textContent = c.labelTh;
- if ((q.categoryId || 'cybercrime') === c.id) o.selected = true;
+ if ((q.categoryId || 'topic1') === c.id) o.selected = true;
selCat.appendChild(o);
});
selCat.addEventListener('change', function () {
diff --git a/www/html/Game/data/quiz-battle-leaderboard.json b/www/html/Game/data/quiz-battle-leaderboard.json
new file mode 100644
index 0000000..f22a9f3
--- /dev/null
+++ b/www/html/Game/data/quiz-battle-leaderboard.json
@@ -0,0 +1 @@
+{"qbroom1":[{"name":"ผู้เล่น8916","score":4,"characterId":"char-1777017632279","ts":1781074083031},{"name":"ผู้เล่น2821","score":4,"characterId":"char-1777017632279","ts":1781079179108},{"name":"Q","score":0,"characterId":"char-1777017632279","ts":1781082837883}],"qbroom2":[{"name":"ผู้เล่น2612","score":1,"characterId":"char-1777017632279","ts":1781079252376}]}
\ No newline at end of file
diff --git a/www/html/Game/data/quiz-settings.json b/www/html/Game/data/quiz-settings.json
index cb09517..2622cdd 100644
--- a/www/html/Game/data/quiz-settings.json
+++ b/www/html/Game/data/quiz-settings.json
@@ -279,501 +279,2001 @@
"battleQuizMcq": [
{
"categoryId": "topic1",
- "text": "[กฎหมายใกล้ตัว] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "อายุที่บรรลุนิติภาวะตามกฎหมายไทยคือกี่ปี?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "20 ปีบริบูรณ์",
+ "18 ปี",
+ "15 ปี"
],
"correctIndex": 0
},
{
"categoryId": "topic1",
- "text": "[กฎหมายใกล้ตัว] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "การทำบัตรประชาชนครั้งแรกต้องทำเมื่ออายุเท่าใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "10 ปี",
+ "7 ปี",
+ "15 ปี"
],
"correctIndex": 1
},
{
"categoryId": "topic1",
- "text": "[กฎหมายใกล้ตัว] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "เอกสารใดใช้เป็นหลักฐานแสดงตนตามกฎหมาย?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "บัตรสมาชิกห้าง",
+ "บัตรนักเรียนเก่า",
+ "บัตรประจำตัวประชาชน"
],
"correctIndex": 2
},
{
"categoryId": "topic1",
- "text": "[กฎหมายใกล้ตัว] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "การหมั้นตามกฎหมายไทย ฝ่ายชายต้องมอบสิ่งใดให้ฝ่ายหญิง?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ของหมั้น",
+ "ค่าปรับ",
+ "ภาษี"
],
"correctIndex": 0
},
{
"categoryId": "topic1",
- "text": "[กฎหมายใกล้ตัว] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "พินัยกรรมคือเอกสารแสดงเจตนาเกี่ยวกับสิ่งใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "การกู้เงิน",
+ "การจัดการทรัพย์สินหลังเสียชีวิต",
+ "การเช่าบ้าน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การจดทะเบียนสมรสทำได้ที่ใด?",
+ "choices": [
+ "ธนาคาร",
+ "โรงพยาบาล",
+ "ที่ว่าการอำเภอหรือสำนักงานเขต"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic1",
+ "text": "ทำไมสัญญาเช่าบ้านจึงควรทำเป็นลายลักษณ์อักษร?",
+ "choices": [
+ "เป็นหลักฐานป้องกันข้อพิพาท",
+ "เพื่อเสียภาษีมากขึ้น",
+ "เพื่อความสวยงาม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic1",
+ "text": "หากเก็บเงินที่ผู้อื่นทำหล่นได้ ควรทำอย่างไรตามกฎหมาย?",
+ "choices": [
+ "เก็บไว้เป็นของตน",
+ "ส่งคืนเจ้าของหรือแจ้งตำรวจ",
+ "ทิ้งไป"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การกู้ยืมเงินเกินกว่าเท่าใดควรมีหลักฐานเป็นหนังสือจึงฟ้องร้องได้?",
+ "choices": [
+ "50 บาท",
+ "1 ล้านบาท",
+ "2,000 บาท"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic1",
+ "text": "ดอกเบี้ยเงินกู้ระหว่างบุคคลตามกฎหมายห้ามเกินร้อยละเท่าใดต่อปี?",
+ "choices": [
+ "ร้อยละ 15",
+ "ร้อยละ 50",
+ "ร้อยละ 100"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การรับบุตรบุญธรรมต้องจดทะเบียนที่ใด?",
+ "choices": [
+ "ศาล",
+ "ที่ว่าการอำเภอหรือสำนักงานเขต",
+ "สถานีตำรวจ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic1",
+ "text": "เมื่อซื้อสินค้าชำรุด ผู้บริโภคมีสิทธิทำสิ่งใด?",
+ "choices": [
+ "ทำอะไรไม่ได้เลย",
+ "ต้องจ่ายเงินเพิ่ม",
+ "ขอเปลี่ยนหรือคืนตามเงื่อนไข"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การเซ็นค้ำประกันเงินกู้ให้ผู้อื่นหมายความว่าอย่างไร?",
+ "choices": [
+ "ต้องรับผิดชอบหนี้หากลูกหนี้ไม่ชำระ",
+ "ได้รับเงินฟรี",
+ "ไม่มีผลผูกพันใด"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic1",
+ "text": "เอกสารสิทธิ์ที่ดินที่มีกรรมสิทธิ์สมบูรณ์ที่สุดคือ?",
+ "choices": [
+ "ใบจอง",
+ "โฉนดที่ดิน (น.ส.4)",
+ "ส.ป.ก."
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การแจ้งเกิดเด็กต้องแจ้งภายในกี่วัน?",
+ "choices": [
+ "ภายใน 1 ปี",
+ "ภายใน 90 วัน",
+ "ภายใน 15 วัน"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic1",
+ "text": "หากถูกละเมิดสิทธิผู้บริโภค ร้องเรียนได้ที่หน่วยงานใด?",
+ "choices": [
+ "สำนักงานคุ้มครองผู้บริโภค (สคบ.)",
+ "กรมศุลกากร",
+ "กรมป่าไม้"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การทำสัญญาที่เกิดจากการถูกข่มขู่ มีผลอย่างไร?",
+ "choices": [
+ "สมบูรณ์เสมอ",
+ "เป็นโมฆียะ (บอกล้างได้)",
+ "ผิดอาญาทันที"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic1",
+ "text": "บุคคลใดทำนิติกรรมเองไม่ได้ ต้องมีผู้แทนโดยชอบธรรม?",
+ "choices": [
+ "ผู้ใหญ่ทั่วไป",
+ "ข้าราชการ",
+ "ผู้เยาว์"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic1",
+ "text": "การเช่าซื้อรถยนต์ กรรมสิทธิ์จะเป็นของผู้เช่าซื้อเมื่อใด?",
+ "choices": [
+ "เมื่อชำระค่างวดครบตามสัญญา",
+ "ทันทีที่รับรถ",
+ "ไม่มีวันเป็นของผู้เช่าซื้อ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic1",
+ "text": "หนังสือมอบอำนาจใช้เพื่อสิ่งใด?",
+ "choices": [
+ "ยกทรัพย์ให้ฟรี",
+ "ให้ผู้อื่นทำการแทนตามที่ระบุ",
+ "จ่ายภาษีแทน"
],
"correctIndex": 1
},
{
"categoryId": "topic2",
- "text": "[กฎหมายสิทธิ์พื้นฐาน] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "สิทธิเสรีภาพขั้นพื้นฐานของประชาชนได้รับการรับรองในกฎหมายใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "รัฐธรรมนูญ",
+ "กฎกระทรวง",
+ "ประกาศของห้าง"
],
"correctIndex": 0
},
{
"categoryId": "topic2",
- "text": "[กฎหมายสิทธิ์พื้นฐาน] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "สิทธิในการเลือกตั้งระดับชาติ เริ่มเมื่ออายุเท่าใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "15 ปี",
+ "18 ปี",
+ "25 ปี"
],
"correctIndex": 1
},
{
"categoryId": "topic2",
- "text": "[กฎหมายสิทธิ์พื้นฐาน] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "หลัก \"บุคคลย่อมเสมอกันตามกฎหมาย\" หมายถึงสิ่งใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "คนรวยมีสิทธิมากกว่า",
+ "ผู้ชายเหนือกว่าผู้หญิง",
+ "ได้รับการคุ้มครองอย่างเท่าเทียม"
],
"correctIndex": 2
},
{
"categoryId": "topic2",
- "text": "[กฎหมายสิทธิ์พื้นฐาน] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "เสรีภาพในการนับถือศาสนา หมายความว่าอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "เลือกนับถือศาสนาใดก็ได้",
+ "ต้องนับถือศาสนาเดียวเท่านั้น",
+ "ห้ามนับถือศาสนา"
],
"correctIndex": 0
},
{
"categoryId": "topic2",
- "text": "[กฎหมายสิทธิ์พื้นฐาน] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "รัฐจัดการศึกษาขั้นพื้นฐานให้ฟรีกี่ปี?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "5 ปี",
+ "15 ปี",
+ "3 ปี"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic2",
+ "text": "การถูกจับกุมโดยไม่มีหมายและไม่มีเหตุตามกฎหมาย ละเมิดสิ่งใด?",
+ "choices": [
+ "สิทธิในทรัพย์สิน",
+ "ลิขสิทธิ์",
+ "สิทธิเสรีภาพในร่างกาย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic2",
+ "text": "เสรีภาพในการแสดงความคิดเห็นมีขอบเขตอย่างไร?",
+ "choices": [
+ "ต้องไม่ละเมิดสิทธิผู้อื่นหรือผิดกฎหมาย",
+ "ทำอะไรก็ได้ไม่จำกัด",
+ "ห้ามพูดทุกอย่าง"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic2",
+ "text": "สิทธิของผู้ต้องหาในคดีอาญาข้อใดถูกต้อง?",
+ "choices": [
+ "ต้องถือว่าผิดทันที",
+ "ได้รับการสันนิษฐานว่าบริสุทธิ์จนกว่าจะพิสูจน์ได้",
+ "ห้ามมีทนายความ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic2",
+ "text": "การเข้าถึงข้อมูลข่าวสารของราชการเป็นสิทธิตามกฎหมายใด?",
+ "choices": [
+ "กฎจราจร",
+ "กฎหมายแพ่ง",
+ "พ.ร.บ.ข้อมูลข่าวสารของราชการ"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic2",
+ "text": "สิทธิความเป็นส่วนตัว (privacy) คุ้มครองสิ่งใด?",
+ "choices": [
+ "ข้อมูลส่วนบุคคลและชีวิตส่วนตัว",
+ "ทรัพย์สินสาธารณะ",
+ "ที่ดินของรัฐ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic2",
+ "text": "ผู้พิการมีสิทธิได้รับสิ่งใดจากรัฐ?",
+ "choices": [
+ "ไม่มีสิทธิใด ๆ",
+ "สิ่งอำนวยความสะดวกและสวัสดิการ",
+ "เสียภาษีเพิ่ม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic2",
+ "text": "เด็กมีสิทธิพื้นฐานข้อใด?",
+ "choices": [
+ "ทำงานหนักเท่าผู้ใหญ่",
+ "ไม่มีสิทธิใด ๆ",
+ "ได้รับการเลี้ยงดูและการศึกษา"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic2",
+ "text": "เสรีภาพในการชุมนุมต้องเป็นไปอย่างไร?",
+ "choices": [
+ "โดยสงบและปราศจากอาวุธ",
+ "ใช้อาวุธได้",
+ "ทำลายทรัพย์สินได้"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic2",
+ "text": "สิทธิได้รับการพิจารณาคดีอย่างเป็นธรรมเรียกว่าอะไร?",
+ "choices": [
+ "สิทธิในการหลบหนี",
+ "สิทธิในกระบวนการยุติธรรมที่เป็นธรรม",
+ "สิทธิในการติดสินบน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic2",
+ "text": "การเลือกปฏิบัติเพราะเพศ เชื้อชาติ หรือศาสนา กฎหมายมองว่าอย่างไร?",
+ "choices": [
+ "ทำได้อย่างเสรี",
+ "ควรส่งเสริม",
+ "ต้องห้ามและผิดกฎหมาย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic2",
+ "text": "หน่วยงานใดมีหน้าที่คุ้มครองสิทธิมนุษยชนในไทย?",
+ "choices": [
+ "คณะกรรมการสิทธิมนุษยชนแห่งชาติ",
+ "กรมที่ดิน",
+ "การไฟฟ้า"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic2",
+ "text": "สิทธิแรงงานข้อใดถูกต้อง?",
+ "choices": [
+ "ต้องทำงานฟรี",
+ "ได้รับค่าจ้างขั้นต่ำตามกฎหมาย",
+ "ห้ามหยุดพัก"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic2",
+ "text": "PDPA เป็นกฎหมายที่คุ้มครองสิ่งใด?",
+ "choices": [
+ "ที่ดิน",
+ "รถยนต์",
+ "ข้อมูลส่วนบุคคล"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic2",
+ "text": "สิทธิในการรักษาพยาบาลขั้นพื้นฐานของคนไทยเรียกว่าอะไร?",
+ "choices": [
+ "หลักประกันสุขภาพถ้วนหน้า (บัตรทอง)",
+ "ประกันรถยนต์",
+ "ภาษีมูลค่าเพิ่ม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic2",
+ "text": "การกระทำใดถือเป็นการละเมิดสิทธิมนุษยชน?",
+ "choices": [
+ "การไปใช้สิทธิเลือกตั้ง",
+ "การบังคับใช้แรงงานเด็กโดยไม่เต็มใจ",
+ "การแสดงความคิดเห็นอย่างสุภาพ"
],
"correctIndex": 1
},
{
"categoryId": "topic3",
- "text": "[กฎหมายจราจร] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "ผู้ขับขี่รถจักรยานยนต์ต้องสวมสิ่งใดทุกครั้ง?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "หมวกนิรภัย",
+ "แว่นกันแดด",
+ "ถุงมือ"
],
"correctIndex": 0
},
{
"categoryId": "topic3",
- "text": "[กฎหมายจราจร] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "สัญญาณไฟจราจรสีแดงหมายถึงอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ให้ไปได้",
+ "ให้หยุด",
+ "ให้เตรียมตัว"
],
"correctIndex": 1
},
{
"categoryId": "topic3",
- "text": "[กฎหมายจราจร] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การขับรถขณะเมาสุรา ระดับแอลกอฮอล์ในเลือดห้ามเกินเท่าใด (ผู้ขับทั่วไป)?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "200 มิลลิกรัมเปอร์เซ็นต์",
+ "ไม่จำกัด",
+ "50 มิลลิกรัมเปอร์เซ็นต์"
],
"correctIndex": 2
},
{
"categoryId": "topic3",
- "text": "[กฎหมายจราจร] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "ใบอนุญาตขับรถยนต์ส่วนบุคคลครั้งแรกออกให้ผู้มีอายุอย่างน้อยกี่ปี?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "18 ปี",
+ "15 ปี",
+ "12 ปี"
],
"correctIndex": 0
},
{
"categoryId": "topic3",
- "text": "[กฎหมายจราจร] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "การคาดเข็มขัดนิรภัยมีไว้เพื่อสิ่งใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "เพิ่มความเร็วรถ",
+ "ลดการบาดเจ็บเมื่อเกิดอุบัติเหตุ",
+ "ประหยัดน้ำมัน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic3",
+ "text": "เมื่อถึงทางม้าลายที่มีคนกำลังข้าม ผู้ขับขี่ควรทำอย่างไร?",
+ "choices": [
+ "เร่งความเร็วผ่านไป",
+ "บีบแตรไล่",
+ "ชะลอและหยุดให้คนข้าม"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การใช้โทรศัพท์มือถือขณะขับรถโดยไม่มีอุปกรณ์เสริม มีผลอย่างไร?",
+ "choices": [
+ "ผิดกฎจราจร",
+ "ถูกต้องตามกฎหมาย",
+ "ได้คะแนนสะสม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic3",
+ "text": "สัญญาณไฟเลี้ยวใช้เพื่อสิ่งใด?",
+ "choices": [
+ "ประดับรถให้สวย",
+ "บอกทิศทางแก่ผู้ร่วมทาง",
+ "ไล่แมลง"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic3",
+ "text": "เมื่อรถพยาบาลเปิดสัญญาณไซเรนมา ผู้ขับขี่ควรทำอย่างไร?",
+ "choices": [
+ "ขับขวางไว้",
+ "เร่งแซงขึ้นหน้า",
+ "หลีกทางให้"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การจอดรถในที่ห้ามจอดมีผลอย่างไร?",
+ "choices": [
+ "ถูกปรับหรือล็อกล้อ",
+ "ได้รับรางวัล",
+ "ไม่มีผลใด ๆ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic3",
+ "text": "ป้ายจราจรวงกลมขอบแดงพื้นขาวโดยทั่วไปหมายถึงอะไร?",
+ "choices": [
+ "ป้ายแนะนำ",
+ "ป้ายบังคับหรือห้าม",
+ "ป้ายโฆษณา"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การขับรถย้อนศรเป็นการกระทำอย่างไร?",
+ "choices": [
+ "ปลอดภัยดี",
+ "ควรส่งเสริม",
+ "ผิดกฎหมายและอันตราย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic3",
+ "text": "หากเกิดอุบัติเหตุมีผู้บาดเจ็บ ผู้ขับขี่ควรทำสิ่งใดก่อน?",
+ "choices": [
+ "ช่วยเหลือผู้บาดเจ็บและแจ้งเหตุ",
+ "รีบหลบหนี",
+ "ลบหลักฐาน"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การชนแล้วหนีหลังก่ออุบัติเหตุ มีผลอย่างไร?",
+ "choices": [
+ "ไม่มีความผิด",
+ "มีความผิดตามกฎหมาย",
+ "ได้รับการลดโทษ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic3",
+ "text": "เด็กเล็กควรนั่งรถยนต์อย่างไรให้ปลอดภัย?",
+ "choices": [
+ "นั่งบนตักคนขับ",
+ "ยืนหน้ารถ",
+ "ใช้ที่นั่งนิรภัยสำหรับเด็ก (คาร์ซีท)"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การบรรทุกเกินพิกัดน้ำหนักมีผลอย่างไร?",
+ "choices": [
+ "ผิดกฎหมายและเสี่ยงอุบัติเหตุ",
+ "ปลอดภัยมากขึ้น",
+ "ประหยัดเวลา"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การขับรถเร็วเกินกว่ากฎหมายกำหนดมีผลอย่างไร?",
+ "choices": [
+ "ได้รับรางวัล",
+ "ถูกปรับและเสี่ยงอันตราย",
+ "ไม่ผิดกฎหมาย"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การแซงรถควรทำเมื่อใด?",
+ "choices": [
+ "ในทางโค้ง",
+ "บนสะพาน",
+ "เมื่อปลอดภัยและทัศนวิสัยดี"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic3",
+ "text": "พ.ร.บ. (ประกันภัยรถภาคบังคับ) มีไว้เพื่อสิ่งใด?",
+ "choices": [
+ "คุ้มครองผู้ประสบภัยจากรถ",
+ "ตกแต่งรถ",
+ "ลดภาษีบ้าน"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic3",
+ "text": "การเปิดไฟหน้ารถในเวลากลางคืนมีไว้เพื่ออะไร?",
+ "choices": [
+ "เพิ่มความเร็ว",
+ "เพิ่มการมองเห็นและความปลอดภัย",
+ "ประหยัดแบตเตอรี่"
],
"correctIndex": 1
},
{
"categoryId": "topic4",
- "text": "[คดีเกี่ยวกับทรัพย์] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "การเอาทรัพย์ของผู้อื่นไปโดยทุจริตเรียกว่าความผิดฐานใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ลักทรัพย์",
+ "หมิ่นประมาท",
+ "บุกรุก"
],
"correctIndex": 0
},
{
"categoryId": "topic4",
- "text": "[คดีเกี่ยวกับทรัพย์] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "การลักทรัพย์โดยใช้กำลังประทุษร้ายหรือขู่เข็ญเรียกว่าอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ยักยอกทรัพย์",
+ "ชิงทรัพย์",
+ "ฉ้อโกง"
],
"correctIndex": 1
},
{
"categoryId": "topic4",
- "text": "[คดีเกี่ยวกับทรัพย์] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การชิงทรัพย์โดยมีผู้ร่วมตั้งแต่สามคนขึ้นไปเรียกว่าอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ลักทรัพย์",
+ "รับของโจร",
+ "ปล้นทรัพย์"
],
"correctIndex": 2
},
{
"categoryId": "topic4",
- "text": "[คดีเกี่ยวกับทรัพย์] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "การหลอกลวงให้ผู้อื่นมอบทรัพย์ให้เรียกว่าความผิดฐานใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ฉ้อโกง",
+ "ลักทรัพย์",
+ "ทำร้ายร่างกาย"
],
"correctIndex": 0
},
{
"categoryId": "topic4",
- "text": "[คดีเกี่ยวกับทรัพย์] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "ผู้ได้รับมอบหมายให้ดูแลทรัพย์แล้วเบียดบังเอาเป็นของตนเรียกว่าอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ชิงทรัพย์",
+ "ยักยอกทรัพย์",
+ "ปล้นทรัพย์"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การซื้อหรือรับทรัพย์ที่รู้ว่าได้มาจากการกระทำผิดเรียกว่าอะไร?",
+ "choices": [
+ "ลักทรัพย์",
+ "ฉ้อโกง",
+ "รับของโจร"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การทำให้ทรัพย์สินของผู้อื่นเสียหายเรียกว่าความผิดฐานใด?",
+ "choices": [
+ "ทำให้เสียทรัพย์",
+ "หมิ่นประมาท",
+ "บุกรุก"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การเข้าไปในเคหสถานของผู้อื่นโดยไม่มีสิทธิเรียกว่าอะไร?",
+ "choices": [
+ "ลักทรัพย์",
+ "บุกรุก",
+ "ฉ้อโกง"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic4",
+ "text": "เมื่อถูกลักทรัพย์ควรทำอย่างไร?",
+ "choices": [
+ "แก้แค้นด้วยตนเอง",
+ "นิ่งเฉย",
+ "แจ้งความต่อเจ้าหน้าที่ตำรวจ"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การลักทรัพย์ในเวลากลางคืนมีผลต่อโทษอย่างไร?",
+ "choices": [
+ "โทษหนักขึ้น (เหตุฉกรรจ์)",
+ "ไม่มีผลต่อโทษ",
+ "ได้ลดโทษ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การกรรโชกทรัพย์หมายถึงอะไร?",
+ "choices": [
+ "การขอยืมตามปกติ",
+ "ข่มขืนใจให้ผู้อื่นยอมให้ทรัพย์โดยขู่เข็ญ",
+ "การซื้อขายทั่วไป"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การยักยอกทรัพย์ต่างจากลักทรัพย์อย่างไร?",
+ "choices": [
+ "ต้องใช้กำลังเสมอ",
+ "ไม่มีความผิด",
+ "ผู้ครอบครองทรัพย์อยู่แล้วเบียดบังเอาไป"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การวิ่งราวทรัพย์หมายถึงอะไร?",
+ "choices": [
+ "ลักทรัพย์โดยฉกฉวยซึ่งหน้าแล้ววิ่งหนี",
+ "ปล้นโดยมีอาวุธ",
+ "การฉ้อโกง"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic4",
+ "text": "ความผิดเกี่ยวกับทรัพย์ส่วนใหญ่อยู่ในกฎหมายใด?",
+ "choices": [
+ "กฎจราจร",
+ "ประมวลกฎหมายอาญา",
+ "กฎหมายแรงงาน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การทำลายเอกสารสำคัญของผู้อื่นถือเป็นความผิดหรือไม่?",
+ "choices": [
+ "ไม่ผิด",
+ "ควรส่งเสริม",
+ "เป็นความผิด"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การปล้นทรัพย์โดยมีอาวุธมีผลต่อโทษอย่างไร?",
+ "choices": [
+ "โทษหนักขึ้น",
+ "ได้ลดโทษ",
+ "ไม่มีผล"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic4",
+ "text": "คดีลักทรัพย์ระหว่างญาติบางกรณีจัดเป็นความผิดประเภทใด?",
+ "choices": [
+ "คดีอุกฉกรรจ์เสมอ",
+ "ความผิดอันยอมความได้",
+ "คดีแพ่งล้วน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic4",
+ "text": "การฉ้อโกงประชาชนต่างจากฉ้อโกงทั่วไปอย่างไร?",
+ "choices": [
+ "เหมือนกันทุกอย่าง",
+ "ไม่เป็นความผิด",
+ "หลอกลวงคนจำนวนมาก โทษหนักขึ้น"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic4",
+ "text": "ทรัพย์ที่ถูกลักไปแล้วได้คืน เจ้าของควรทำอย่างไร?",
+ "choices": [
+ "รับคืนและดำเนินคดีตามกฎหมาย",
+ "ทำลายทิ้ง",
+ "นำไปขายต่อ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic4",
+ "text": "สิ่งของที่ผู้อื่นทำหายแล้วเก็บได้ หากเบียดบังเป็นของตนผิดฐานใด?",
+ "choices": [
+ "ปล้นทรัพย์",
+ "ยักยอกทรัพย์สินหาย",
+ "ทำร้ายร่างกาย"
],
"correctIndex": 1
},
{
"categoryId": "topic5",
- "text": "[คดีหมิ่นประมาท] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "การใส่ความผู้อื่นต่อบุคคลที่สามจนเสียชื่อเสียงเรียกว่าอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "หมิ่นประมาท",
+ "ลักทรัพย์",
+ "บุกรุก"
],
"correctIndex": 0
},
{
"categoryId": "topic5",
- "text": "[คดีหมิ่นประมาท] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "การหมิ่นประมาทด้วยการโฆษณาหรือสื่อสิ่งพิมพ์ มีผลต่อโทษอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ได้ลดโทษ",
+ "โทษหนักขึ้น",
+ "ไม่เป็นความผิด"
],
"correctIndex": 1
},
{
"categoryId": "topic5",
- "text": "[คดีหมิ่นประมาท] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การหมิ่นประมาททางออนไลน์เข้าข่ายกฎหมายใดเพิ่มเติม?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "กฎจราจร",
+ "กฎหมายแรงงาน",
+ "พ.ร.บ.ว่าด้วยการกระทำผิดเกี่ยวกับคอมพิวเตอร์"
],
"correctIndex": 2
},
{
"categoryId": "topic5",
- "text": "[คดีหมิ่นประมาท] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "ข้อใดอาจเป็นเหตุยกเว้นความผิดฐานหมิ่นประมาท?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "การติชมโดยสุจริตและเป็นธรรม",
+ "การใส่ร้ายด้วยข้อมูลเท็จ",
+ "การนินทาให้เสียหาย"
],
"correctIndex": 0
},
{
"categoryId": "topic5",
- "text": "[คดีหมิ่นประมาท] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "การหมิ่นประมาทบุคคลทั่วไปเป็นความผิดประเภทใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "คดีอุกฉกรรจ์",
+ "ความผิดอันยอมความได้",
+ "คดีแพ่งล้วน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การด่าทอผู้อื่นซึ่งหน้าด้วยถ้อยคำหยาบคายเข้าข่ายความผิดใด?",
+ "choices": [
+ "ลักทรัพย์",
+ "ฉ้อโกง",
+ "ดูหมิ่นซึ่งหน้า"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic5",
+ "text": "ผู้เสียหายจากการหมิ่นประมาทสามารถทำสิ่งใดได้?",
+ "choices": [
+ "ฟ้องร้องเรียกค่าเสียหาย",
+ "ทำร้ายผู้กระทำ",
+ "ยึดทรัพย์เอง"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การแชร์ข้อความหมิ่นประมาทผู้อื่นต่อ มีความเสี่ยงอย่างไร?",
+ "choices": [
+ "ปลอดภัยเสมอ",
+ "อาจมีความผิดร่วมด้วย",
+ "ได้รับรางวัล"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic5",
+ "text": "องค์ประกอบสำคัญของการหมิ่นประมาทคืออะไร?",
+ "choices": [
+ "การพูดกับตัวเองคนเดียว",
+ "การคิดอยู่ในใจ",
+ "การใส่ความต่อบุคคลที่สาม"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การลงรูปผู้อื่นพร้อมข้อความใส่ร้ายในโซเชียลมีเดียผิดหรือไม่?",
+ "choices": [
+ "ผิด",
+ "ไม่ผิด",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic5",
+ "text": "หากถูกหมิ่นประมาทออนไลน์ ควรทำอย่างไร?",
+ "choices": [
+ "ลบทุกอย่างทันที",
+ "เก็บหลักฐานและแจ้งความ",
+ "ตอบโต้ด้วยการด่ากลับ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การวิจารณ์สินค้าหรือบริการตามความจริงโดยสุจริตเป็นอย่างไร?",
+ "choices": [
+ "ผิดกฎหมายเสมอ",
+ "ต้องติดคุกทันที",
+ "โดยทั่วไปทำได้"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic5",
+ "text": "โทษของการหมิ่นประมาทโดยทั่วไปคืออะไร?",
+ "choices": [
+ "ปรับและ/หรือจำคุกตามที่กฎหมายกำหนด",
+ "ไม่มีโทษใด ๆ",
+ "ได้รับรางวัล"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic5",
+ "text": "ความแตกต่างระหว่าง \"ดูหมิ่น\" กับ \"หมิ่นประมาท\" คือ?",
+ "choices": [
+ "เหมือนกันทุกประการ",
+ "ดูหมิ่นคือสบประมาทซึ่งหน้า หมิ่นประมาทคือใส่ความต่อผู้อื่น",
+ "ไม่เป็นความผิดทั้งคู่"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การกล่าวหาผู้อื่นว่ากระทำผิดโดยไม่มีมูลความจริง เข้าข่ายใด?",
+ "choices": [
+ "ถูกต้องตามกฎหมาย",
+ "ควรส่งเสริม",
+ "หมิ่นประมาทหรือแจ้งความเท็จ"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic5",
+ "text": "ผู้กระทำหมิ่นประมาทอาจต้องรับผิดทางใดบ้าง?",
+ "choices": [
+ "ทั้งทางอาญาและทางแพ่ง",
+ "ไม่มีความรับผิดใด",
+ "ได้รับเฉพาะรางวัล"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การขอโทษและแก้ไขข้อความ มีผลอย่างไรในคดีหมิ่นประมาท?",
+ "choices": [
+ "ไม่มีผลใด ๆ",
+ "อาจช่วยบรรเทาโทษหรือยอมความ",
+ "เพิ่มโทษให้หนักขึ้น"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic5",
+ "text": "สื่อมวลชนรายงานข่าวตามข้อเท็จจริงเพื่อประโยชน์สาธารณะ โดยทั่วไปเป็นอย่างไร?",
+ "choices": [
+ "ผิดกฎหมายเสมอ",
+ "ต้องปิดสำนักงาน",
+ "ได้รับการคุ้มครองหากทำโดยสุจริต"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การหมิ่นประมาทผู้ที่เสียชีวิตไปแล้วมีกฎหมายเกี่ยวข้องหรือไม่?",
+ "choices": [
+ "มี เพราะกระทบต่อทายาท",
+ "ไม่มีเลย",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic5",
+ "text": "การพูดความจริงเพื่อประโยชน์สาธารณะโดยสุจริต โดยทั่วไปเป็นอย่างไร?",
+ "choices": [
+ "ผิดเสมอ",
+ "อาจไม่เป็นความผิด",
+ "ผิดร้ายแรงที่สุด"
],
"correctIndex": 1
},
{
"categoryId": "topic6",
- "text": "[คดีทางเพศ] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "การล่วงละเมิดทางเพศโดยผู้อื่นไม่ยินยอมเป็นความผิดประเภทใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ความผิดทางอาญาที่ร้ายแรง",
+ "เรื่องส่วนตัว",
+ "ไม่เป็นความผิด"
],
"correctIndex": 0
},
{
"categoryId": "topic6",
- "text": "[คดีทางเพศ] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "\"ความยินยอม\" ในเรื่องเพศต้องเป็นอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "บังคับให้ยินยอมได้",
+ "สมัครใจและรู้สึกตัว ไม่ถูกบังคับ",
+ "ไม่จำเป็นต้องมี"
],
"correctIndex": 1
},
{
"categoryId": "topic6",
- "text": "[คดีทางเพศ] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การล่วงละเมิดทางเพศเด็ก กฎหมายมองอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ไม่ผิดหากเด็กยินยอม",
+ "เป็นเรื่องเล็กน้อย",
+ "เป็นความผิดร้ายแรงแม้เด็กจะยินยอม"
],
"correctIndex": 2
},
{
"categoryId": "topic6",
- "text": "[คดีทางเพศ] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "การคุกคามทางเพศในที่ทำงานเป็นอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "เป็นความผิดและร้องเรียนได้",
+ "เป็นเรื่องปกติ",
+ "ควรส่งเสริม"
],
"correctIndex": 0
},
{
"categoryId": "topic6",
- "text": "[คดีทางเพศ] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "ผู้เสียหายจากความผิดทางเพศควรทำอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "นิ่งเฉยเสมอ",
+ "แจ้งความและขอความช่วยเหลือ",
+ "โทษตัวเอง"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การเผยแพร่ภาพลับของผู้อื่นโดยไม่ยินยอมผิดกฎหมายใด?",
+ "choices": [
+ "ไม่ผิดกฎหมาย",
+ "กฎจราจร",
+ "กฎหมายอาญาและ พ.ร.บ.คอมพิวเตอร์"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การแอบถ่ายภาพผู้อื่นในที่ลับโดยไม่ยินยอมเป็นอย่างไร?",
+ "choices": [
+ "เป็นความผิด",
+ "ทำได้ตามปกติ",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic6",
+ "text": "หน่วยงานใดช่วยเหลือผู้เสียหายจากความรุนแรงทางเพศ?",
+ "choices": [
+ "กรมที่ดิน",
+ "ศูนย์ช่วยเหลือสังคม สายด่วน 1300",
+ "การไฟฟ้า"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การล่อลวงเด็กเพื่อการค้าประเวณีเป็นความผิดอย่างไร?",
+ "choices": [
+ "ไม่เป็นความผิด",
+ "เป็นเรื่องเล็กน้อย",
+ "ความผิดร้ายแรง โทษหนัก"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การส่งข้อความหรือรูปลามกให้ผู้อื่นที่ไม่ต้องการรับ เป็นอย่างไร?",
+ "choices": [
+ "เป็นการคุกคามและอาจผิดกฎหมาย",
+ "เป็นการสุภาพ",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic6",
+ "text": "หลักฐานสำคัญในคดีล่วงละเมิดทางเพศควรทำอย่างไร?",
+ "choices": [
+ "ทำลายทิ้ง",
+ "เก็บรักษาและรีบแจ้งเจ้าหน้าที่",
+ "เพิกเฉย"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การข่มขืนกระทำชำเราโดยมีอาวุธหรือร่วมกันหลายคน มีผลต่อโทษอย่างไร?",
+ "choices": [
+ "ได้ลดโทษ",
+ "ไม่มีผล",
+ "โทษหนักขึ้น"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic6",
+ "text": "เด็กและเยาวชนที่เป็นผู้เสียหายได้รับการคุ้มครองอย่างไร?",
+ "choices": [
+ "ปกปิดข้อมูลและสอบสวนเป็นพิเศษ",
+ "เปิดเผยต่อสาธารณะ",
+ "ไม่มีการคุ้มครอง"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การกระทำอนาจารต่อผู้อื่นโดยไม่ยินยอมเป็นความผิดหรือไม่?",
+ "choices": [
+ "ไม่ผิด",
+ "เป็นความผิด",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การให้ความรู้เรื่องการป้องกันภัยทางเพศมีประโยชน์อย่างไร?",
+ "choices": [
+ "ไม่มีประโยชน์",
+ "เป็นอันตราย",
+ "ช่วยลดความเสี่ยงและรู้สิทธิของตน"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic6",
+ "text": "ผู้พบเห็นการล่วงละเมิดทางเพศเด็กควรทำอย่างไร?",
+ "choices": [
+ "แจ้งเจ้าหน้าที่ทันที",
+ "เพิกเฉย",
+ "ร่วมกระทำด้วย"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การบังคับให้ผู้อื่นค้าประเวณีเข้าข่ายความผิดใด?",
+ "choices": [
+ "ลักทรัพย์",
+ "การค้ามนุษย์",
+ "จราจร"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic6",
+ "text": "ความยินยอมที่ได้มาจากการหลอกลวงหรือข่มขู่ ถือว่าอย่างไร?",
+ "choices": [
+ "ใช้ได้ตามปกติ",
+ "ดีที่สุด",
+ "ไม่ถือเป็นความยินยอมที่ชอบด้วยกฎหมาย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic6",
+ "text": "การเคารพสิทธิในเนื้อตัวร่างกายของผู้อื่นหมายถึงอะไร?",
+ "choices": [
+ "ไม่แตะต้องหรือล่วงละเมิดโดยไม่ยินยอม",
+ "ทำได้ตามใจ",
+ "บังคับได้"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic6",
+ "text": "สายด่วนแจ้งเหตุค้ามนุษย์หรือช่วยเหลือเด็กในภาวะเสี่ยงคือหมายเลขใด?",
+ "choices": [
+ "1137",
+ "1300 (ศูนย์ช่วยเหลือสังคม)",
+ "1234"
],
"correctIndex": 1
},
{
"categoryId": "topic7",
- "text": "[คดีอาชญากรรม] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "การทำร้ายร่างกายผู้อื่นจนได้รับอันตรายเป็นความผิดฐานใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ทำร้ายร่างกาย",
+ "หมิ่นประมาท",
+ "ลักทรัพย์"
],
"correctIndex": 0
},
{
"categoryId": "topic7",
- "text": "[คดีอาชญากรรม] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "การฆ่าผู้อื่นโดยเจตนาเป็นความผิดฐานใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "กระทำโดยประมาท",
+ "ฆ่าผู้อื่นโดยเจตนา",
+ "ความผิดลหุโทษ"
],
"correctIndex": 1
},
{
"categoryId": "topic7",
- "text": "[คดีอาชญากรรม] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การฆ่าโดยไตร่ตรองไว้ก่อนมีผลต่อโทษอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ได้ลดโทษ",
+ "ไม่มีผล",
+ "โทษหนักขึ้นถึงประหารชีวิต"
],
"correctIndex": 2
},
{
"categoryId": "topic7",
- "text": "[คดีอาชญากรรม] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "การป้องกันตัวพอสมควรแก่เหตุ มีผลทางกฎหมายอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ไม่มีความผิด",
+ "ผิดเสมอ",
+ "ได้รับรางวัล"
],
"correctIndex": 0
},
{
"categoryId": "topic7",
- "text": "[คดีอาชญากรรม] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "การกระทำโดยประมาทเป็นเหตุให้ผู้อื่นถึงแก่ความตายเป็นอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ไม่เป็นความผิด",
+ "มีความผิดฐานประมาท",
+ "เป็นการฆ่าโดยเจตนา"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การข่มขู่ว่าจะทำร้ายผู้อื่นให้เกิดความกลัวเป็นความผิดฐานใด?",
+ "choices": [
+ "ลักทรัพย์",
+ "จราจร",
+ "ข่มขืนใจหรือทำให้ตกใจกลัว"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic7",
+ "text": "ผู้ใช้ให้ผู้อื่นกระทำความผิด มีความรับผิดอย่างไร?",
+ "choices": [
+ "รับผิดในฐานะผู้ใช้",
+ "ไม่มีความผิด",
+ "ได้รับรางวัล"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic7",
+ "text": "ผู้สนับสนุนการกระทำความผิดมีความรับผิดหรือไม่?",
+ "choices": [
+ "ไม่มี",
+ "มี ในฐานะผู้สนับสนุน",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การพยายามกระทำความผิดแต่ไม่สำเร็จ มีความรับผิดหรือไม่?",
+ "choices": [
+ "ไม่มีความรับผิด",
+ "โทษเท่าเดิมเสมอ",
+ "มี แต่โทษอาจลดลง"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic7",
+ "text": "ความผิดอาญาส่วนใหญ่ถูกบัญญัติไว้ในกฎหมายใด?",
+ "choices": [
+ "ประมวลกฎหมายอาญา",
+ "กฎหมายแพ่ง",
+ "กฎจราจร"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การครอบครองอาวุธปืนโดยไม่ได้รับอนุญาตเป็นอย่างไร?",
+ "choices": [
+ "ถูกกฎหมาย",
+ "ผิดกฎหมาย",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การมั่วสุมก่อความวุ่นวายในที่สาธารณะเป็นความผิดหรือไม่?",
+ "choices": [
+ "ไม่ผิด",
+ "ควรส่งเสริม",
+ "เป็นความผิด"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic7",
+ "text": "หลัก \"ไม่มีความผิดและไม่มีโทษโดยไม่มีกฎหมาย\" หมายถึงอะไร?",
+ "choices": [
+ "ต้องมีกฎหมายบัญญัติไว้ก่อนจึงลงโทษได้",
+ "ลงโทษได้ตามใจ",
+ "ไม่ต้องมีกฎหมายก็ได้"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การกระทำความผิดซ้ำมีผลอย่างไร?",
+ "choices": [
+ "ได้ลดโทษเสมอ",
+ "อาจถูกเพิ่มโทษ",
+ "ไม่มีผล"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การวางเพลิงเผาทรัพย์ของผู้อื่นเป็นความผิดฐานใด?",
+ "choices": [
+ "ลักทรัพย์",
+ "หมิ่นประมาท",
+ "วางเพลิง"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การให้การเท็จต่อศาลในฐานะพยานเป็นความผิดฐานใด?",
+ "choices": [
+ "เบิกความเท็จ",
+ "เรื่องปกติ",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic7",
+ "text": "ผู้เสพหรือครอบครองยาเสพติดเข้าสู่กระบวนการใดได้บ้าง?",
+ "choices": [
+ "ไม่มีอะไรเกิดขึ้น",
+ "บำบัดรักษาหรือดำเนินคดีตามกฎหมาย",
+ "ได้รับรางวัล"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic7",
+ "text": "การช่วยผู้กระทำผิดหลบหนีหรือซ่อนหลักฐานเป็นความผิดหรือไม่?",
+ "choices": [
+ "ไม่ผิด",
+ "ควรส่งเสริม",
+ "เป็นความผิด"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic7",
+ "text": "โทษทางอาญาตามประมวลกฎหมายอาญ ามีประเภทใดบ้าง?",
+ "choices": [
+ "ประหารชีวิต จำคุก กักขัง ปรับ ริบทรัพย์สิน",
+ "มีเพียงแบบเดียว",
+ "ไม่มีโทษใด ๆ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic7",
+ "text": "เด็กอายุน้อยที่กระทำผิด กฎหมายปฏิบัติอย่างไร?",
+ "choices": [
+ "ลงโทษเท่าผู้ใหญ่",
+ "ใช้วิธีการสำหรับเด็กเน้นแก้ไขฟื้นฟู",
+ "ไม่ทำอะไรเลย"
],
"correctIndex": 1
},
{
"categoryId": "topic8",
- "text": "[อาชญากรรมออนไลน์] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "การหลอกให้โอนเงินผ่านออนไลน์ (แก๊งคอลเซ็นเตอร์) เป็นความผิดฐานใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ฉ้อโกงหรือฉ้อโกงประชาชน",
+ "เรื่องปกติ",
+ "ควรส่งเสริม"
],
"correctIndex": 0
},
{
"categoryId": "topic8",
- "text": "[อาชญากรรมออนไลน์] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "การเข้าถึงระบบคอมพิวเตอร์ของผู้อื่นโดยไม่ได้รับอนุญาตผิดกฎหมายใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "กฎจราจร",
+ "พ.ร.บ.คอมพิวเตอร์",
+ "กฎหมายแรงงาน"
],
"correctIndex": 1
},
{
"categoryId": "topic8",
- "text": "[อาชญากรรมออนไลน์] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "การนำข้อมูลเท็จเข้าสู่ระบบจนผู้อื่นเสียหายเป็นอย่างไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ถูกกฎหมาย",
+ "ควรส่งเสริม",
+ "ผิด พ.ร.บ.คอมพิวเตอร์"
],
"correctIndex": 2
},
{
"categoryId": "topic8",
- "text": "[อาชญากรรมออนไลน์] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "สิ่งใดที่ \"ไม่ควรทำ\" เพื่อป้องกันบัญชีถูกแฮก?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "บอกรหัส OTP ให้ผู้อื่น",
+ "ตั้งรหัสผ่านที่คาดเดายาก",
+ "เปิดการยืนยันสองชั้น (2FA)"
],
"correctIndex": 0
},
{
"categoryId": "topic8",
- "text": "[อาชญากรรมออนไลน์] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "ลิงก์ปลอมที่ขอข้อมูลส่วนตัวหรือรหัสผ่าน เรียกว่ากลโกงแบบใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "การอัปเดตปกติ",
+ "ฟิชชิ่ง (Phishing)",
+ "โปรโมชั่นจริง"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การกลั่นแกล้งรังแกกันบนโลกออนไลน์เรียกว่าอะไร?",
+ "choices": [
+ "อีคอมเมิร์ซ",
+ "อีเลิร์นนิง",
+ "ไซเบอร์บูลลี่ (Cyberbullying)"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic8",
+ "text": "ควรทำอย่างไรเมื่อถูกหลอกโอนเงินออนไลน์?",
+ "choices": [
+ "รีบแจ้งธนาคารและสายด่วน 1441",
+ "เงียบไว้ไม่บอกใคร",
+ "โอนเงินเพิ่ม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การปลอมโปรไฟล์ผู้อื่นเพื่อหลอกลวงเป็นความผิดหรือไม่?",
+ "choices": [
+ "ไม่ผิด",
+ "เป็นความผิด",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic8",
+ "text": "รหัสผ่านที่ปลอดภัยควรเป็นอย่างไร?",
+ "choices": [
+ "ใช้วันเกิดของตน",
+ "ใช้เลข 1234",
+ "ยาว ผสมตัวอักษร ตัวเลข และสัญลักษณ์"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การซื้อของออนไลน์ให้ปลอดภัยควรทำอย่างไร?",
+ "choices": [
+ "ตรวจสอบร้านค้าและรีวิวก่อนโอนเงิน",
+ "โอนเงินทันทีทุกครั้ง",
+ "ไม่ต้องตรวจสอบ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การเผยแพร่ภาพหรือข้อมูลส่วนตัวผู้อื่นโดยไม่ยินยอมเป็นอย่างไร?",
+ "choices": [
+ "ถูกต้อง",
+ "อาจผิดกฎหมาย PDPA หรือคอมพิวเตอร์",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic8",
+ "text": "มัลแวร์ (Malware) คืออะไร?",
+ "choices": [
+ "แอปธนาคารทางการ",
+ "เกมการศึกษา",
+ "โปรแกรมประสงค์ร้าย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic8",
+ "text": "สายด่วนแจ้งอายัดบัญชีเมื่อถูกหลอกโอนเงินออนไลน์คือหมายเลขใด?",
+ "choices": [
+ "1441",
+ "1669",
+ "1112"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การติดตั้งแอปจากลิงก์ที่ไม่น่าเชื่อถือเสี่ยงอย่างไร?",
+ "choices": [
+ "ปลอดภัยเสมอ",
+ "ถูกควบคุมเครื่องหรือดูดเงิน",
+ "ได้รับเงิน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การพนันออนไลน์ในประเทศไทยเป็นอย่างไร?",
+ "choices": [
+ "ถูกกฎหมาย",
+ "ควรส่งเสริม",
+ "ผิดกฎหมาย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การหลอกขายสินค้าออนไลน์แล้วไม่ส่งของเป็นความผิดฐานใด?",
+ "choices": [
+ "ฉ้อโกง",
+ "เรื่องปกติ",
+ "ควรส่งเสริม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic8",
+ "text": "ควรปฏิบัติกับรหัส OTP ที่ได้รับอย่างไร?",
+ "choices": [
+ "แชร์ในกลุ่มเพื่อน",
+ "เก็บเป็นความลับ ไม่บอกใคร",
+ "โพสต์สาธารณะ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การแฮกบัญชีโซเชียลของผู้อื่นเป็นอย่างไร?",
+ "choices": [
+ "เรื่องปกติ",
+ "ควรส่งเสริม",
+ "ผิดกฎหมาย"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic8",
+ "text": "เมื่อพบข่าวปลอม (Fake News) ควรทำอย่างไร?",
+ "choices": [
+ "ตรวจสอบให้แน่ใจก่อนแชร์",
+ "แชร์ต่อทันที",
+ "สร้างข่าวปลอมเพิ่ม"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic8",
+ "text": "การกรอกข้อมูลบัตรเครดิตในเว็บที่ไม่ปลอดภัยเสี่ยงอย่างไร?",
+ "choices": [
+ "ปลอดภัยเสมอ",
+ "ถูกขโมยเงินหรือข้อมูล",
+ "ได้รับแต้มสะสม"
],
"correctIndex": 1
},
{
"categoryId": "topic9",
- "text": "[กระบวนการยุติธรรม] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "หน่วยงานใดมีหน้าที่สืบสวนสอบสวนคดีอาญาในเบื้องต้น?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ตำรวจ",
+ "ศาล",
+ "กรมราชทัณฑ์"
],
"correctIndex": 0
},
{
"categoryId": "topic9",
- "text": "[กระบวนการยุติธรรม] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "ผู้มีหน้าที่ฟ้องคดีอาญาแทนรัฐคือใคร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ผู้พิพากษา",
+ "พนักงานอัยการ",
+ "ทนายจำเลย"
],
"correctIndex": 1
},
{
"categoryId": "topic9",
- "text": "[กระบวนการยุติธรรม] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "ผู้ทำหน้าที่พิจารณาพิพากษาคดีคือใคร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ตำรวจ",
+ "อัยการ",
+ "ผู้พิพากษาหรือศาล"
],
"correctIndex": 2
},
{
"categoryId": "topic9",
- "text": "[กระบวนการยุติธรรม] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "หลัก \"สันนิษฐานว่าบริสุทธิ์\" หมายถึงอะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ถือว่าบริสุทธิ์จนกว่าศาลจะตัดสินว่าผิด",
+ "ถือว่าผิดทันที",
+ "ไม่ต้องพิสูจน์"
],
"correctIndex": 0
},
{
"categoryId": "topic9",
- "text": "[กระบวนการยุติธรรม] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "ผู้ต้องหามีสิทธิข้อใดในชั้นสอบสวน?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ต้องรับสารภาพ",
+ "มีสิทธิมีทนายและจะไม่ให้การก็ได้",
+ "ห้ามนิ่งเงียบ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic9",
+ "text": "การปล่อยตัวชั่วคราวระหว่างดำเนินคดีเรียกว่าอะไร?",
+ "choices": [
+ "การจำคุก",
+ "การปรับ",
+ "การประกันตัว"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic9",
+ "text": "ศาลชั้นต้น อุทธรณ์ และฎีกา เป็นลำดับของอะไร?",
+ "choices": [
+ "ลำดับชั้นของศาล",
+ "ชื่อเรือนจำ",
+ "ชื่อสถานีตำรวจ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic9",
+ "text": "หากไม่พอใจคำพิพากษาศาลชั้นต้น คู่ความทำสิ่งใดได้?",
+ "choices": [
+ "แก้แค้นด้วยตนเอง",
+ "ยื่นอุทธรณ์",
+ "เพิกเฉยเสมอ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic9",
+ "text": "ผู้ไม่มีเงินจ้างทนายในคดีอาญา มีสิทธิอย่างไร?",
+ "choices": [
+ "ต้องสู้คดีด้วยตนเอง",
+ "ถูกตัดสินทันที",
+ "ขอทนายความที่รัฐจัดให้"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic9",
+ "text": "หน่วยงานใดดูแลผู้ต้องขังหลังศาลพิพากษาจำคุก?",
+ "choices": [
+ "กรมราชทัณฑ์",
+ "อัยการ",
+ "ตำรวจจราจร"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic9",
+ "text": "คดีแพ่งต่างจากคดีอาญาอย่างไร?",
+ "choices": [
+ "เหมือนกันทุกอย่าง",
+ "แพ่งเป็นข้อพิพาทเรื่องสิทธิ/หนี้ อาญาเป็นการลงโทษผู้กระทำผิด",
+ "ไม่มีความแตกต่าง"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic9",
+ "text": "พยานมีหน้าที่อย่างไรต่อศาล?",
+ "choices": [
+ "โกหกได้",
+ "ไม่ต้องมาศาล",
+ "ให้การตามความจริง"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic9",
+ "text": "การไกล่เกลี่ยข้อพิพาทมีประโยชน์อย่างไร?",
+ "choices": [
+ "ยุติข้อพิพาทได้เร็วและประหยัด",
+ "เพิ่มความขัดแย้ง",
+ "ผิดกฎหมาย"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic9",
+ "text": "หมายค้นหรือหมายจับออกโดยใคร?",
+ "choices": [
+ "เพื่อนบ้าน",
+ "ศาล",
+ "ห้างสรรพสินค้า"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic9",
+ "text": "สิทธิของผู้เสียหายในคดีอาญาข้อใดถูกต้อง?",
+ "choices": [
+ "ห้ามยุ่งเกี่ยว",
+ "ต้องนิ่งเงียบ",
+ "ร้องทุกข์และเป็นโจทก์ร่วมได้"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic9",
+ "text": "ทนายความมีบทบาทอย่างไร?",
+ "choices": [
+ "ให้คำปรึกษาและว่าความแทนคู่ความ",
+ "ตัดสินคดี",
+ "จับกุมผู้ต้องหา"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic9",
+ "text": "การบังคับคดีแพ่งทำเพื่อสิ่งใด?",
+ "choices": [
+ "ลงโทษจำคุก",
+ "ให้เป็นไปตามคำพิพากษา เช่น ยึดทรัพย์ชำระหนี้",
+ "ไม่มีผลใด ๆ"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic9",
+ "text": "ระบบยุติธรรมสำหรับเด็กและเยาวชนเน้นสิ่งใด?",
+ "choices": [
+ "การลงโทษที่รุนแรงที่สุด",
+ "ไม่สนใจ",
+ "การแก้ไขฟื้นฟูมากกว่าการลงโทษ"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic9",
+ "text": "การอุทธรณ์หรือฎีกาต้องทำภายในกำหนดเวลาหรือไม่?",
+ "choices": [
+ "ต้องทำภายในระยะเวลาที่กฎหมายกำหนด",
+ "ไม่มีกำหนดเวลา",
+ "ทำเมื่อใดก็ได้"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic9",
+ "text": "กระบวนการยุติธรรมเชิงสมานฉันท์มีเป้าหมายอย่างไร?",
+ "choices": [
+ "เพิ่มโทษให้หนัก",
+ "เยียวยาและคืนความสัมพันธ์ระหว่างคู่กรณี",
+ "ส่งเสริมการแก้แค้น"
],
"correctIndex": 1
},
{
"categoryId": "topic10",
- "text": "[งานบริการกระทรวงยุติธรรม] คำถามตัวอย่างที่ 1 (แก้ได้ใน Admin)",
+ "text": "กองทุนยุติธรรมช่วยเหลือประชาชนในเรื่องใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "ค่าใช้จ่ายในการเข้าถึงความยุติธรรม เช่น ค่าทนาย/ประกันตัว",
+ "ค่าท่องเที่ยว",
+ "ค่าอาหารประจำวัน"
],
"correctIndex": 0
},
{
"categoryId": "topic10",
- "text": "[งานบริการกระทรวงยุติธรรม] คำถามตัวอย่างที่ 2 (แก้ได้ใน Admin)",
+ "text": "สายด่วนกระทรวงยุติธรรมคือหมายเลขใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "1669",
+ "1111 กด 77",
+ "199"
],
"correctIndex": 1
},
{
"categoryId": "topic10",
- "text": "[งานบริการกระทรวงยุติธรรม] คำถามตัวอย่างที่ 3 (แก้ได้ใน Admin)",
+ "text": "กรมคุ้มครองสิทธิและเสรีภาพมีหน้าที่หลักด้านใด?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "เก็บภาษี",
+ "ออกใบขับขี่",
+ "คุ้มครองสิทธิและช่วยเหลือเยียวยาผู้เสียหาย"
],
"correctIndex": 2
},
{
"categoryId": "topic10",
- "text": "[งานบริการกระทรวงยุติธรรม] คำถามตัวอย่างที่ 4 (แก้ได้ใน Admin)",
+ "text": "ผู้เสียหายในคดีอาญาที่ไม่ได้มีส่วนผิด อาจได้รับสิ่งใดจากรัฐ?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "เงินช่วยเหลือหรือค่าตอบแทนผู้เสียหาย",
+ "ค่าปรับ",
+ "ไม่ได้รับสิ่งใด"
],
"correctIndex": 0
},
{
"categoryId": "topic10",
- "text": "[งานบริการกระทรวงยุติธรรม] คำถามตัวอย่างที่ 5 (แก้ได้ใน Admin)",
+ "text": "กรมบังคับคดีมีหน้าที่อะไร?",
"choices": [
- "ตัวเลือก ก",
- "ตัวเลือก ข",
- "ตัวเลือก ค"
+ "สอนหนังสือ",
+ "บังคับคดีตามคำพิพากษา เช่น ยึดและขายทอดตลาด",
+ "รักษาพยาบาล"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic10",
+ "text": "ศูนย์ยุติธรรมชุมชนมีไว้เพื่อสิ่งใด?",
+ "choices": [
+ "ขายสินค้า",
+ "จัดคอนเสิร์ต",
+ "ให้บริการและไกล่เกลี่ยในระดับชุมชน"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การไกล่เกลี่ยข้อพิพาทโดยหน่วยงานรัฐมีค่าใช้จ่ายอย่างไร?",
+ "choices": [
+ "ส่วนใหญ่ไม่มีค่าใช้จ่ายหรือค่าใช้จ่ายต่ำ",
+ "แพงมาก",
+ "ต้องติดสินบน"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic10",
+ "text": "กรมพินิจและคุ้มครองเด็กและเยาวชนดูแลเรื่องใด?",
+ "choices": [
+ "ผู้สูงอายุทั่วไป",
+ "เด็กและเยาวชนที่เข้าสู่กระบวนการยุติธรรม",
+ "การจัดเก็บภาษี"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic10",
+ "text": "สถาบันนิติวิทยาศาสตร์มีบทบาทอย่างไร?",
+ "choices": [
+ "ออกใบขับขี่",
+ "เก็บภาษี",
+ "ตรวจพิสูจน์หลักฐานทางวิทยาศาสตร์"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic10",
+ "text": "ประชาชนขอคำปรึกษากฎหมายเบื้องต้นจากกระทรวงยุติธรรมได้หรือไม่?",
+ "choices": [
+ "ได้ มีบริการให้คำปรึกษา",
+ "ไม่ได้",
+ "ต้องจ่ายเงินจำนวนมาก"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic10",
+ "text": "กรมสอบสวนคดีพิเศษ (DSI) ดูแลคดีประเภทใด?",
+ "choices": [
+ "คดีจราจรเล็กน้อย",
+ "คดีพิเศษที่ซับซ้อนหรือกระทบส่วนรวม",
+ "คดีทั่วไปในชุมชน"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การช่วยเหลือทางการเงินแก่ผู้ต้องหายากจนเพื่อประกันตัว มาจากแหล่งใด?",
+ "choices": [
+ "เงินส่วนตัวของศาล",
+ "ภาษีท้องถิ่น",
+ "กองทุนยุติธรรม"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การคุ้มครองพยานในคดีสำคัญเป็นภารกิจด้านใด?",
+ "choices": [
+ "งานคุ้มครองพยาน",
+ "งานออกใบขับขี่",
+ "งานเก็บขยะ"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic10",
+ "text": "หากประชาชนไม่ได้รับความเป็นธรรม ร้องเรียนได้ที่ใดบ้าง?",
+ "choices": [
+ "ร้านสะดวกซื้อ",
+ "ศูนย์บริการหรือสายด่วนกระทรวงยุติธรรม",
+ "ธนาคาร"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การฟื้นฟูสมรรถภาพผู้ติดยาเสพติดเกี่ยวข้องกับหน่วยงานด้านใด?",
+ "choices": [
+ "กรมที่ดิน",
+ "ไปรษณีย์",
+ "หน่วยงานด้านยาเสพติดและสาธารณสุข"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic10",
+ "text": "บริการ \"ทนายความอาสา\" มีไว้เพื่อสิ่งใด?",
+ "choices": [
+ "ช่วยเหลือผู้ขาดแคลนทุนทรัพย์",
+ "เก็บค่าธรรมเนียมราคาแพง",
+ "โฆษณาสินค้า"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การขอรับค่าตอบแทนผู้เสียหายต้องยื่นภายในกำหนดเวลาหรือไม่?",
+ "choices": [
+ "ไม่มีกำหนดเวลา",
+ "ต้องยื่นภายในระยะเวลาที่กฎหมายกำหนด",
+ "ยื่นเมื่อใดก็ได้"
+ ],
+ "correctIndex": 1
+ },
+ {
+ "categoryId": "topic10",
+ "text": "กระทรวงยุติธรรมส่งเสริมความรู้กฎหมายแก่ประชาชนเพื่ออะไร?",
+ "choices": [
+ "เพิ่มจำนวนคดี",
+ "จัดเก็บภาษี",
+ "ให้ประชาชนรู้สิทธิและเข้าถึงความยุติธรรม"
+ ],
+ "correctIndex": 2
+ },
+ {
+ "categoryId": "topic10",
+ "text": "แนวคิด \"ยุติธรรมสร้างสุข\" เกี่ยวกับสิ่งใด?",
+ "choices": [
+ "บริการประชาชนให้เข้าถึงความยุติธรรมอย่างทั่วถึง",
+ "การท่องเที่ยว",
+ "การกีฬา"
+ ],
+ "correctIndex": 0
+ },
+ {
+ "categoryId": "topic10",
+ "text": "การตรวจสอบประวัติอาชญากรรมเพื่อสมัครงานเกี่ยวข้องกับหน่วยงานใด?",
+ "choices": [
+ "การไฟฟ้า",
+ "หน่วยงานตำรวจที่เกี่ยวข้อง",
+ "ไปรษณีย์"
],
"correctIndex": 1
}
diff --git a/www/html/Game/public/img/qb-ui/Quiz-Battle-bg.png b/www/html/Game/public/img/qb-ui/Quiz-Battle-bg.png
new file mode 100644
index 0000000..ff19a39
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Quiz-Battle-bg.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-01.png b/www/html/Game/public/img/qb-ui/Room-01.png
new file mode 100644
index 0000000..2c73d18
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-01.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-02.png b/www/html/Game/public/img/qb-ui/Room-02.png
new file mode 100644
index 0000000..5749176
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-02.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-03.png b/www/html/Game/public/img/qb-ui/Room-03.png
new file mode 100644
index 0000000..2123b93
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-03.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-04.png b/www/html/Game/public/img/qb-ui/Room-04.png
new file mode 100644
index 0000000..d69eb8d
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-04.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-05.png b/www/html/Game/public/img/qb-ui/Room-05.png
new file mode 100644
index 0000000..fe8b513
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-05.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-06.png b/www/html/Game/public/img/qb-ui/Room-06.png
new file mode 100644
index 0000000..2c8c77b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-06.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-07.png b/www/html/Game/public/img/qb-ui/Room-07.png
new file mode 100644
index 0000000..ee1450b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-07.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-08.png b/www/html/Game/public/img/qb-ui/Room-08.png
new file mode 100644
index 0000000..a4e67ad
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-08.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-09.png b/www/html/Game/public/img/qb-ui/Room-09.png
new file mode 100644
index 0000000..f33cb1b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-09.png differ
diff --git a/www/html/Game/public/img/qb-ui/Room-10.png b/www/html/Game/public/img/qb-ui/Room-10.png
new file mode 100644
index 0000000..96e940c
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/Room-10.png differ
diff --git a/www/html/Game/public/img/qb-ui/btn-exit-room.png b/www/html/Game/public/img/qb-ui/btn-exit-room.png
new file mode 100644
index 0000000..afea9a0
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/btn-exit-room.png differ
diff --git a/www/html/Game/public/img/qb-ui/btn-more.png b/www/html/Game/public/img/qb-ui/btn-more.png
new file mode 100644
index 0000000..2499517
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/btn-more.png differ
diff --git a/www/html/Game/public/img/qb-ui/btn-my-result.png b/www/html/Game/public/img/qb-ui/btn-my-result.png
new file mode 100644
index 0000000..40244e3
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/btn-my-result.png differ
diff --git a/www/html/Game/public/img/qb-ui/btn-ranking.png b/www/html/Game/public/img/qb-ui/btn-ranking.png
new file mode 100644
index 0000000..63eeb22
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/btn-ranking.png differ
diff --git a/www/html/Game/public/img/qb-ui/btn-start-quiz.png b/www/html/Game/public/img/qb-ui/btn-start-quiz.png
new file mode 100644
index 0000000..06c3e2e
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/btn-start-quiz.png differ
diff --git a/www/html/Game/public/img/qb-ui/icon-001.png b/www/html/Game/public/img/qb-ui/icon-001.png
new file mode 100644
index 0000000..5eea5c7
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/icon-001.png differ
diff --git a/www/html/Game/public/img/qb-ui/icon-002.png b/www/html/Game/public/img/qb-ui/icon-002.png
new file mode 100644
index 0000000..eb80c3a
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/icon-002.png differ
diff --git a/www/html/Game/public/img/qb-ui/icon-003.png b/www/html/Game/public/img/qb-ui/icon-003.png
new file mode 100644
index 0000000..22d1266
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/icon-003.png differ
diff --git a/www/html/Game/public/img/qb-ui/popup-myresult.png b/www/html/Game/public/img/qb-ui/popup-myresult.png
new file mode 100644
index 0000000..9119046
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/popup-myresult.png differ
diff --git a/www/html/Game/public/img/qb-ui/popup-result.png b/www/html/Game/public/img/qb-ui/popup-result.png
new file mode 100644
index 0000000..4a0177d
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/popup-result.png differ
diff --git a/www/html/Game/public/img/qb-ui/q-correct.png b/www/html/Game/public/img/qb-ui/q-correct.png
new file mode 100644
index 0000000..5af32d0
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/q-correct.png differ
diff --git a/www/html/Game/public/img/qb-ui/q-scroll-bar.png b/www/html/Game/public/img/qb-ui/q-scroll-bar.png
new file mode 100644
index 0000000..c3bbc37
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/q-scroll-bar.png differ
diff --git a/www/html/Game/public/img/qb-ui/q-scroll-bg.png b/www/html/Game/public/img/qb-ui/q-scroll-bg.png
new file mode 100644
index 0000000..36fb0aa
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/q-scroll-bg.png differ
diff --git a/www/html/Game/public/img/qb-ui/q-wrong.png b/www/html/Game/public/img/qb-ui/q-wrong.png
new file mode 100644
index 0000000..cd43c1b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/q-wrong.png differ
diff --git a/www/html/Game/public/img/qb-ui/quiz-room.png b/www/html/Game/public/img/qb-ui/quiz-room.png
new file mode 100644
index 0000000..bfeca65
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/quiz-room.png differ
diff --git a/www/html/Game/public/img/qb-ui/result-01.png b/www/html/Game/public/img/qb-ui/result-01.png
new file mode 100644
index 0000000..fb0e48c
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/result-01.png differ
diff --git a/www/html/Game/public/img/qb-ui/result-02.png b/www/html/Game/public/img/qb-ui/result-02.png
new file mode 100644
index 0000000..577b69d
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/result-02.png differ
diff --git a/www/html/Game/public/img/qb-ui/result-03.png b/www/html/Game/public/img/qb-ui/result-03.png
new file mode 100644
index 0000000..dca9852
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/result-03.png differ
diff --git a/www/html/Game/public/img/qb-ui/result-04-line.png b/www/html/Game/public/img/qb-ui/result-04-line.png
new file mode 100644
index 0000000..499860b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/result-04-line.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-01.png b/www/html/Game/public/img/qb-ui/tag-01.png
new file mode 100644
index 0000000..b4e1a05
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-01.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-02.png b/www/html/Game/public/img/qb-ui/tag-02.png
new file mode 100644
index 0000000..f460ad9
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-02.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-03.png b/www/html/Game/public/img/qb-ui/tag-03.png
new file mode 100644
index 0000000..865a30b
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-03.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-04.png b/www/html/Game/public/img/qb-ui/tag-04.png
new file mode 100644
index 0000000..0e6013f
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-04.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-05.png b/www/html/Game/public/img/qb-ui/tag-05.png
new file mode 100644
index 0000000..53a5128
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-05.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-06.png b/www/html/Game/public/img/qb-ui/tag-06.png
new file mode 100644
index 0000000..ed65824
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-06.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-07.png b/www/html/Game/public/img/qb-ui/tag-07.png
new file mode 100644
index 0000000..ad28a36
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-07.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-08.png b/www/html/Game/public/img/qb-ui/tag-08.png
new file mode 100644
index 0000000..1a7ee1d
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-08.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-09.png b/www/html/Game/public/img/qb-ui/tag-09.png
new file mode 100644
index 0000000..51d74e3
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-09.png differ
diff --git a/www/html/Game/public/img/qb-ui/tag-10.png b/www/html/Game/public/img/qb-ui/tag-10.png
new file mode 100644
index 0000000..20fc4e1
Binary files /dev/null and b/www/html/Game/public/img/qb-ui/tag-10.png differ
diff --git a/www/html/Game/public/js/play.js b/www/html/Game/public/js/play.js
index 2e6b38f..6624a8a 100644
--- a/www/html/Game/public/js/play.js
+++ b/www/html/Game/public/js/play.js
@@ -3155,6 +3155,19 @@
let quizBattleAnsweredComps = new Set();
let quizBattleModalCompId = null;
let qbAutoLastComp = null; // โดมล่าสุดที่ trigger อัตโนมัติ (กันเด้งซ้ำขณะยืนค้าง)
+ /** ประวัติคำตอบต่อโดม (สำหรับ MY RESULT): compId → { qIndex, firstTry(bool), correct(bool), submittedIdx, q } */
+ let quizBattleAnswerLog = new Map();
+ /** เวลาเริ่มเล่นห้อง quiz_battle (ms) — สำหรับ Total time */
+ let quizBattleSessionStartMs = 0;
+ let quizBattleScoreSubmittedAt = 0;
+ /** ล็อกตัวเลือกระหว่างโชว์ผลถูก/ผิด (กันกดซ้ำ + กันเด้งซ้ำ) */
+ let quizBattleChoiceLocked = false;
+ /** โชว์ popup Completed แล้วหรือยัง (กันเด้งซ้ำเมื่อตอบครบทุกโดม) */
+ let quizBattleCompletedShown = false;
+ /** โดมที่ "ผ่านแล้ว" (ตอบถูกหรือผิดก็ผ่าน) — ใช้ปลดล็อกเส้นทาง + จำว่าเคยตอบ ไม่ต้องตอบซ้ำ */
+ let quizBattlePassedComps = new Set();
+ /** ซูมที่ผู้เล่นปรับเองในฉาก quiz_battle (ล้อเมาส์ / ปุ่ม +−) */
+ let quizBattleUserZoomMul = 1;
const SPACE_SHOOTER_SHIP_COLORS = ['#50fa7b', '#ff79c6', '#ff5555', '#f1fa8c', '#bd93f9', '#8be9fd'];
document.getElementById('room-id').textContent = spaceId;
@@ -3204,6 +3217,10 @@
if (isQuizQuestionMissionUiMapPlay()) {
wrap.classList.add('is-hidden');
}
+ /* Quiz Battle: ใช้ HUD ใหม่ (#qb-game-hud) — ซ่อนกล่อง "คะแนน" เดิม */
+ if (isQuizBattle()) {
+ wrap.classList.add('is-hidden');
+ }
}
function initPlayLiveQuizScoresZeros() {
@@ -5469,6 +5486,8 @@
const mwPx = w * tileSize;
const mhPx = h * tileSize;
zDraw = Math.min(canvas.width / mwPx, canvas.height / mhPx) * 0.96;
+ } else if (isQuizBattle()) {
+ zDraw *= quizBattleUserZoomMul;
}
if (isStackTowerEmbedZoomLockedPlay()) {
playEmbedUserZoomMul = PLAY_EMBED_STACK_TOWER_FIXED_ZOOM_MUL;
@@ -9834,6 +9853,80 @@
}
}
+ /** Quiz Battle (qbroom*) เลขห้องจาก mapId → tag/หมวด */
+ function quizBattleRoomNoPlay() {
+ const m = String(currentPlayMapId() || '').match(/qbroom(\d+)/i);
+ return m ? Math.max(1, Math.min(10, parseInt(m[1], 10))) : 0;
+ }
+
+ /**
+ * Quiz Battle in-game HUD → overlay #qb-game-hud (design plane 1920×1080 scale ตาม stage)
+ * header หมวด (tag-NN), PLAYERS x/50, SCORE (ตอบถูก), host avatar. EXIT/MY RESULT/RANKING wire แยก
+ */
+ function syncQuizBattleHudPlay() {
+ const root = document.getElementById('qb-game-hud');
+ if (!root) return;
+ const on = !!(mapData && isQuizBattle());
+ root.classList.toggle('is-hidden', !on);
+ root.setAttribute('aria-hidden', on ? 'false' : 'true');
+ if (!on) return;
+ /* ซ่อนกล่อง dev instruction ('QUIZ BATTLE · โหลดคำถามแล้ว...') มุมซ้ายล่าง — ไม่มีใน design */
+ const qgOv = document.getElementById('quiz-game-overlay');
+ if (qgOv && !qgOv.classList.contains('is-hidden')) qgOv.classList.add('is-hidden');
+ const stack = document.getElementById('play-canvas-stack');
+ if (stack) {
+ const r = stack.getBoundingClientRect();
+ const cw = Math.max(1, r.width || 0);
+ const ch = Math.max(1, r.height || 0);
+ const s = Math.min(cw / 1920, ch / 1080);
+ if (s > 0 && isFinite(s)) {
+ const left = Math.round(r.left + (cw - 1920 * s) / 2);
+ const top = Math.round(r.top + (ch - 1080 * s) / 2);
+ const key = left + ',' + top + ',' + s.toFixed(4);
+ if (root.dataset.box !== key) {
+ root.dataset.box = key;
+ root.style.left = left + 'px';
+ root.style.top = top + 'px';
+ root.style.transform = 'scale(' + s + ')';
+ }
+ }
+ }
+ const roomNo = quizBattleRoomNoPlay();
+ const tag = document.getElementById('qb-hud-tag');
+ if (tag && roomNo > 0) {
+ const want = BASE + '/img/qb-ui/tag-' + (roomNo < 10 ? '0' + roomNo : String(roomNo)) + '.png';
+ if (tag.dataset.src !== want) { tag.dataset.src = want; tag.src = want; }
+ }
+ const pv = document.getElementById('qb-hud-players-val');
+ if (pv) {
+ const n = countPlayHumans();
+ const max = (mapData && mapData.maxPlayers) || 50;
+ const txt = n + '/' + max;
+ if (pv.textContent !== txt) pv.textContent = txt;
+ }
+ const sv = document.getElementById('qb-hud-score-val');
+ if (sv) {
+ const sc = quizBattleAnsweredComps ? quizBattleAnsweredComps.size : 0;
+ if (sv.textContent !== String(sc)) sv.textContent = String(sc);
+ }
+ const av = document.getElementById('qb-hud-host-av');
+ if (av) {
+ const cid = me.characterId || getPlayCharacterId();
+ if (cid && av.dataset.cid !== String(cid)) {
+ av.dataset.cid = String(cid);
+ /* full-body down avatar (เหมือนหน้า Quiz-Battle/.qb-room-profile-avatar) clip โชว์แค่ส่วนบน */
+ ensurePlayLobbyIdleAvatarImage(cid);
+ const src = playLobbyIdleAvatarSrcForCharacter(cid);
+ if (src) {
+ av.src = src;
+ } else {
+ const im = getCharacterImg(cid, 'down');
+ if (im && im.src) av.src = im.src;
+ }
+ }
+ }
+ }
+
function resetQuizCarryPlayState() {
cancelQuizCarrySessionCompleteResultToSummary();
const qcmo = document.getElementById('quiz-carry-mission-overlay');
@@ -13649,6 +13742,7 @@
ov.classList.add('is-hidden');
ov.setAttribute('aria-hidden', 'true');
}
+ quizBattleChoiceLocked = false;
}
function flashQuizBattleFeedback(text, ok) {
@@ -13725,20 +13819,30 @@
const ov = document.getElementById('quiz-battle-mcq-overlay');
const textEl = document.getElementById('quiz-battle-mcq-text');
if (!ov || !textEl || !q) return;
+ const titleEl = document.getElementById('quiz-battle-mcq-title');
+ if (titleEl) titleEl.textContent = 'QUESTION #' + (quizBattleModalCompId || '');
textEl.textContent = q.text || '';
const labels = ['A', 'B', 'C'];
for (let i = 0; i < 3; i++) {
const btn = ov.querySelector('.quiz-battle-choice[data-idx="' + i + '"]');
- if (btn) {
- const ch = (q.choices && q.choices[i]) ? String(q.choices[i]) : '';
- btn.textContent = labels[i] + (ch ? (': ' + ch.slice(0, 96)) : '');
- }
+ if (!btn) continue;
+ const ch = (q.choices && q.choices[i]) ? String(q.choices[i]) : '';
+ const letterEl = btn.querySelector('.qbc-letter');
+ const txtEl = btn.querySelector('.qbc-text');
+ const markEl = btn.querySelector('.qbc-mark');
+ if (letterEl) letterEl.textContent = labels[i];
+ if (txtEl) txtEl.textContent = ch;
+ if (markEl) { markEl.removeAttribute('src'); markEl.alt = ''; }
+ btn.classList.remove('is-correct', 'is-wrong', 'is-locked');
+ btn.disabled = false;
}
+ quizBattleChoiceLocked = false;
ov.classList.remove('is-hidden');
ov.setAttribute('aria-hidden', 'false');
}
function trySubmitQuizBattleChoice(idx) {
+ if (quizBattleChoiceLocked) return;
if (quizBattleModalCompId == null || !mapData || !isQuizBattle()) return;
const compId = quizBattleModalCompId;
const pool = quizBattleMcqPool;
@@ -13751,6 +13855,34 @@
const q = pool[(compId - 1) % pool.length];
if (!q) return;
const ok = Number(q.correctIndex) === Number(idx);
+ /* ตอบครั้งเดียวจบ — ผิดก็ "ผ่าน" และจำว่าผิด (ไม่ให้ตอบซ้ำ) · log ใช้ทำ MY RESULT (O/X) + accuracy */
+ quizBattleAnswerLog.set(compId, {
+ qIndex: (compId - 1) % pool.length,
+ firstTry: ok,
+ correct: ok,
+ submittedIdx: idx,
+ q: q,
+ });
+ quizBattlePassedComps.add(compId); /* ผ่านโดมนี้แล้ว (ถูกหรือผิดก็ผ่าน — ปลดล็อกเส้นทาง) */
+ /* โชว์ผลถูก/ผิดบนตัวเลือกทันที (q-correct.png / q-wrong.png) แล้วล็อกกันกดซ้ำ */
+ quizBattleChoiceLocked = true;
+ const ov = document.getElementById('quiz-battle-mcq-overlay');
+ if (ov) {
+ ov.querySelectorAll('.quiz-battle-choice').forEach((b) => { b.classList.add('is-locked'); b.disabled = true; });
+ const setMark = (i, kind) => {
+ const b = ov.querySelector('.quiz-battle-choice[data-idx="' + i + '"]');
+ if (!b) return;
+ b.classList.add(kind === 'correct' ? 'is-correct' : 'is-wrong');
+ const m = b.querySelector('.qbc-mark');
+ if (m) m.src = BASE + '/img/qb-ui/' + (kind === 'correct' ? 'q-correct.png' : 'q-wrong.png');
+ };
+ if (ok) {
+ setMark(idx, 'correct');
+ } else {
+ setMark(idx, 'wrong');
+ setMark(Number(q.correctIndex), 'correct'); /* เฉลยคำตอบที่ถูก */
+ }
+ }
if (ok) {
quizBattleAnsweredComps.add(compId);
if (typeof socket !== 'undefined' && socket && socket.connected) {
@@ -13761,12 +13893,343 @@
playLiveQuizScores[myId] = (playLiveQuizScores[myId] || 0) + 1;
renderPlayQuizScoreboard(playLiveQuizScores);
}
+ submitQuizBattleLeaderboardScore();
flashQuizBattleFeedback('ถูกต้อง · +1 · ทางไปข้างหน้าเปิดแล้ว', true);
} else {
- flashQuizBattleFeedback('ยังไม่ถูก — ลองใหม่ (กด E อีกครั้ง)', false);
+ flashQuizBattleFeedback('ตอบผิด — ผ่านได้เลย (บันทึกว่าผิด) ไม่ต้องตอบซ้ำ', false);
}
- quizBattleModalCompId = null;
- hideQuizBattleMcqModal();
+ saveQuizBattleProgress();
+ /* ปิด popup แล้วเช็คจบ (ทั้งถูกและผิด) — ผิดหน่วงนานขึ้นให้เห็นเฉลยก่อน */
+ setTimeout(() => {
+ quizBattleModalCompId = null;
+ hideQuizBattleMcqModal();
+ const totalComps = quizBattleTotalCompsPlay();
+ if (!quizBattleCompletedShown && totalComps > 0 && quizBattlePassedComps.size >= totalComps) {
+ quizBattleCompletedShown = true;
+ setTimeout(openQuizBattleCompleted, 280);
+ }
+ }, ok ? 950 : 1300);
+ }
+
+ /**
+ * ชื่อผู้เล่นสำหรับ leaderboard/ranking — ผูกกับชื่อที่ตั้งใน Main-Lobby
+ * (localStorage 'roomLobbyDisplayName' → 'playerName' ผ่าน readStoredDisplayName / jdReadDisplayName)
+ * ก่อน fallback ไป me.nickname / ?nick= เพื่อให้ตรงกับโปรไฟล์เดียวกันทุกหน้า
+ */
+ function quizBattlePlayerDisplayName() {
+ let stored = '';
+ try {
+ if (typeof window.jdReadDisplayName === 'function') {
+ const v = String(window.jdReadDisplayName() || '').trim();
+ if (v && v !== 'MONE') stored = v; /* 'MONE' = ค่า default เมื่อยังไม่ตั้งชื่อ → ไม่ถือว่าตั้งแล้ว */
+ }
+ } catch (e) { /* ignore */ }
+ if (!stored) stored = readStoredDisplayName();
+ const name = stored || (me && me.nickname) || nick || 'ผู้เล่น';
+ return String(name || 'ผู้เล่น').trim().slice(0, 24) || 'ผู้เล่น';
+ }
+
+ /** ส่งคะแนน (จำนวนตอบถูก) ขึ้น global leaderboard ของห้อง/หมวด */
+ function submitQuizBattleLeaderboardScore() {
+ if (!isQuizBattle() || !socket || !socket.connected) return;
+ const roomNo = quizBattleRoomNoPlay();
+ if (roomNo <= 0) return;
+ const score = quizBattleAnsweredComps ? quizBattleAnsweredComps.size : 0;
+ try {
+ socket.emit('qb-leaderboard-submit', {
+ roomId: 'qbroom' + roomNo,
+ name: quizBattlePlayerDisplayName(),
+ score: score,
+ characterId: me.characterId || getPlayCharacterId() || '',
+ });
+ } catch (e) { /* ignore */ }
+ quizBattleScoreSubmittedAt = Date.now();
+ }
+
+ /* ===== Quiz Battle: progress persistence (resume ต่อจากเดิม) ===== */
+ function quizBattleProgressKey() {
+ const roomNo = quizBattleRoomNoPlay();
+ const roomId = 'qbroom' + (roomNo > 0 ? roomNo : 1);
+ return 'qbProgress:' + roomId + ':' + quizBattlePlayerDisplayName();
+ }
+ function saveQuizBattleProgress() {
+ if (!isQuizBattle()) return;
+ try {
+ const passed = [];
+ quizBattleAnswerLog.forEach((v, c) => {
+ passed.push({ c: c, qi: v.qIndex, ft: v.firstTry ? 1 : 0, ok: v.correct ? 1 : 0, idx: v.submittedIdx });
+ });
+ const nowMs = (typeof performance !== 'undefined' && performance.now) ? performance.now() : Date.now();
+ const elapsed = quizBattleSessionStartMs ? (nowMs - quizBattleSessionStartMs) : 0;
+ const data = {
+ passed: passed,
+ pos: (me && Number.isFinite(me.x) && Number.isFinite(me.y)) ? { x: me.x, y: me.y } : null,
+ elapsed: Math.max(0, Math.round(elapsed)),
+ ts: Date.now(),
+ };
+ localStorage.setItem(quizBattleProgressKey(), JSON.stringify(data));
+ } catch (e) { /* ignore */ }
+ }
+ function loadQuizBattleProgress() {
+ try {
+ const raw = localStorage.getItem(quizBattleProgressKey());
+ return raw ? JSON.parse(raw) : null;
+ } catch (e) { return null; }
+ }
+ /** คืนสถานะที่เคยเล่น (โดมที่ผ่าน/คำตอบ/เวลา) + ตำแหน่งล่าสุด — เรียกใน setupPlayQuizBattleUi */
+ function restoreQuizBattleProgress() {
+ const data = loadQuizBattleProgress();
+ if (!data || !Array.isArray(data.passed)) return;
+ data.passed.forEach((p) => {
+ if (!p || !(p.c > 0)) return;
+ quizBattleAnswerLog.set(p.c, {
+ qIndex: (p.qi != null ? p.qi : 0),
+ firstTry: !!p.ft,
+ correct: !!p.ok,
+ submittedIdx: p.idx,
+ q: null, /* q ผูกใหม่จาก pool ตอนเปิด MY RESULT */
+ });
+ quizBattlePassedComps.add(p.c);
+ if (p.ok) quizBattleAnsweredComps.add(p.c);
+ });
+ /* เวลาเดินต่อ (offset session start ด้วยเวลาที่เคยใช้) */
+ if (data.elapsed > 0) {
+ const nowMs = (typeof performance !== 'undefined' && performance.now) ? performance.now() : Date.now();
+ quizBattleSessionStartMs = nowMs - data.elapsed;
+ }
+ /* sync score HUD + leaderboard ให้ตรงกับที่เคยทำ */
+ if (myId != null) {
+ if (!playLiveQuizScores) playLiveQuizScores = {};
+ playLiveQuizScores[myId] = quizBattleAnsweredComps.size;
+ renderPlayQuizScoreboard(playLiveQuizScores);
+ }
+ /* ย้ายตัวไปจุดเดิม (ถ้ายังเดินได้) แล้วบอกเซิร์ฟเวอร์ */
+ if (data.pos && Number.isFinite(data.pos.x) && Number.isFinite(data.pos.y)) {
+ const px = data.pos.x, py = data.pos.y;
+ setTimeout(() => {
+ try {
+ if (!isQuizBattle() || !me) return;
+ if (typeof canWalkLikeLobby === 'function' && !canWalkLikeLobby(px, py)) return;
+ me.x = px; me.y = py;
+ if (socket && socket.connected) socket.emit('move', { x: me.x, y: me.y, direction: me.direction });
+ draw();
+ } catch (e) { /* ignore */ }
+ }, 350);
+ }
+ }
+
+ /* ===== Quiz Battle: MY RESULT + RANKING popups (Stage 2) ===== */
+ function qbEscHtml(s) {
+ return String(s == null ? '' : s)
+ .replace(/&/g, '&').replace(//g, '>')
+ .replace(/"/g, '"').replace(/'/g, ''');
+ }
+ function qbFmtDuration(ms) {
+ const s = Math.max(0, Math.round((ms || 0) / 1000));
+ const m = Math.floor(s / 60), ss = s % 60;
+ if (m >= 60) { const h = Math.floor(m / 60); return h + 'h ' + (m % 60) + 'm'; }
+ if (m > 0) return m + 'm ' + ss + 's';
+ return ss + ' s';
+ }
+ /** จำนวนโดม (สถานีคำถาม) ทั้งหมดของแมป = ค่า comp สูงสุดใน quizBattleDomeComp */
+ function quizBattleTotalCompsPlay() {
+ const md = mapData;
+ if (md && md.quizBattleDomeComp && Array.isArray(md.quizBattleDomeComp)) {
+ let mx = 0;
+ const dc = md.quizBattleDomeComp;
+ for (let y = 0; y < dc.length; y++) {
+ const row = dc[y]; if (!row) continue;
+ for (let x = 0; x < row.length; x++) { const v = row[x] | 0; if (v > mx) mx = v; }
+ }
+ if (mx > 0) return mx;
+ }
+ return quizBattleMcqPool.length || 0;
+ }
+ function qbSetText(id, txt) { const el = document.getElementById(id); if (el) el.textContent = txt; }
+ function qbAvatarSrcForCharacter(cid) {
+ if (!cid) return '';
+ try { ensurePlayLobbyIdleAvatarImage(cid); } catch (e) { /* ignore */ }
+ const src = playLobbyIdleAvatarSrcForCharacter(cid);
+ if (src) return src;
+ const im = getCharacterImg(cid, 'down');
+ return (im && im.src) ? im.src : '';
+ }
+
+ function openQuizBattleMyResult() {
+ if (!isQuizBattle()) return;
+ const pop = document.getElementById('qb-myresult-popup');
+ if (!pop) return;
+ const total = quizBattleTotalCompsPlay();
+ const passed = quizBattlePassedComps ? quizBattlePassedComps.size : 0;
+ let firstCorrect = 0, attempted = 0;
+ quizBattleAnswerLog.forEach((v) => { attempted++; if (v.firstTry) firstCorrect++; });
+ const accPct = attempted ? Math.round((firstCorrect / attempted) * 100) : 0;
+ const progPct = total ? Math.round((passed / total) * 100) : 0;
+ const nowMs = (typeof performance !== 'undefined' && performance.now) ? performance.now() : Date.now();
+ const elapsed = quizBattleSessionStartMs ? (nowMs - quizBattleSessionStartMs) : 0;
+ qbSetText('qb-mr-accuracy', accPct + '%');
+ qbSetText('qb-mr-accuracy-sub', '(' + firstCorrect + '/' + attempted + ')');
+ qbSetText('qb-mr-progress', progPct + '%');
+ qbSetText('qb-mr-progress-sub', '(' + passed + '/' + total + ')');
+ qbSetText('qb-mr-time', qbFmtDuration(elapsed));
+ const grid = document.getElementById('qb-mr-grid');
+ if (grid) {
+ const cells = Math.max(total, attempted, 0);
+ let html = '';
+ for (let c = 1; c <= cells; c++) {
+ const log = quizBattleAnswerLog.get(c);
+ let cls = 'qb-mr-cell', mark = '';
+ if (!log) { cls += ' is-unanswered'; }
+ else if (log.correct) { cls += ' is-correct'; mark = '
'; }
+ else { cls += ' is-wrong'; mark = '
'; }
+ html += '