เกมทายปัญหาความรู้ทั่วไปในรูปแบบเว็บแอปพลิเคชันหน้าเดียว (Single Page Application) ที่มาพร้อมกับระบบเดิมพันสุดเร้าใจเพื่อเพิ่มความท้าทาย โดยใช้ขุมพลังของ Google Gemini 2.5 Flash API ผ่านระบบหลังบ้านเพื่อสร้างคำถามแบบสุ่มขึ้นมาใหม่และเรียงระดับความยากจากง่ายไปยากโดยเฉพาะ
- คะแนนเริ่มต้น: ผู้เล่นเริ่มเกมด้วยคะแนนสะสม 100 คะแนน มีคำถามทั้งหมด 10 ข้อ
- เฟสเดิมพัน (Betting Phase - 15 วินาที):
- ผู้เล่นจะเห็นโจทย์คำถาม แต่จะยังไม่เห็นตัวเลือกคำตอบ
- ต้องตัดสินใจเลือกวางเดิมพันตามระดับความมั่นใจของตัวเอง (ระบบเดิมพันจะสเกลตามคะแนนคงเหลือของคุณ รวมถึงมีปุ่ม "เทหมดหน้าตัก (All-In)")
- หากหมดเวลาก่อนวางเดิมพัน ระบบจะเลือกวางเดิมพันด้วยคะแนนต่ำสุดให้อัตโนมัติและสลับไปเฟสถัดไป
- เฟสตอบคำถาม (Answering Phase - 15 วินาที):
- ตัวเลือกตัวอักษร A, B, C, D จะปรากฏขึ้นมา
- หาก ตอบถูก: จะได้คะแนนสะสมบวกเพิ่มเท่ากับจำนวนแต้มที่เดิมพันไว้
- หาก ตอบผิด / หมดเวลา: คะแนนสะสมจะโดนหักออกตามจำนวนแต้มที่เดิมพันไว้
- จบเกม (Game Over / Victory):
- หากคะแนนสะสมหมดเกลี้ยง (เหลือ 0 หรือน้อยกว่า) จะ Game Over ทันที
- หากเล่นได้ครบ 10 ข้อ จะผ่านภารกิจสำเร็จ (Victory) พร้อมสรุปสถิติคะแนนสุดท้าย, อัตราการตอบถูก และคะแนนเดิมพันสูงสุดของคุณ
- 🧠 AI-Generated Global Trivia (เชื่อมต่อ Gemini 2.5 Flash): ดึงคำถามทั่วไปจากประวัติศาสตร์ ภูมิศาสตร์ วิทยาศาสตร์ วัฒนธรรมรอบโลกมาสุ่มใหม่ตลอดเวลาผ่าน AI โดยส่งค่าเป็น JSON ป้อนเข้าสู่หน้าบ้านโดยตรง และคัดกรองให้เรียงลำดับจากง่ายที่สุด (ข้อ 1) ไต่ระดับยากขึ้นเรื่อยๆ จนถึงยากที่สุด (ข้อ 10)
- 🔌 Secure Serverless Proxy Backend (ซ่อนกุญแจความปลอดภัย):
ย้ายการติดต่อสื่อสารกับ Gemini API จากหน้าบ้าน (
app.js) ไปไว้ที่ระบบ Serverless Function หลังบ้านผ่าน Vercel (api/questions.js) ป้องกันไม่ให้ผู้ใช้ตรวจหน้าเว็บเพื่อดึงคีย์ส่วนตัวไปใช้ พร้อมรับรองสิทธิ์ CORS ปลอดภัย - 🔊 Retro Synthesized Audio (Web Audio API): ใช้เทคโนโลยีสร้างเสียงสังเคราะห์ย้อนยุค (8-Bit Retro) ในตัวเบราว์เซอร์ผ่านโค้ด JavaScript โดยตรง (ไม่ต้องโหลดไฟล์เสียงภายนอก) มีเสียงปุ่มกด, เสียงเหรียญเดิมพัน, เสียงเวลาเดินติ๊กๆ, เสียงตอบถูก/ผิด, และเสียงชนะ/แพ้ ที่สมบูรณ์แบบและเคลียร์หน่วยความจำทันทีหลังเล่นจบหมดกังวลเรื่องเสียงค้าง
- 🎨 Modern Glassmorphism UI Design: หน้าเว็บตอบสนอง (Responsive) สไตล์ Futuristic Dark Theme ที่สวยงาม มีความโปร่งใสแบบกระจกฝ้า (Frosted Glass), เอฟเฟกต์แสงเงากลิตเตอร์เรืองแสงสีนีออน (Cyan, Purple, Magenta) และแถบจับเวลาสีสันเปลี่ยนสถานะเตือนตามระดับเวลาวิกฤต
├── api/
│ └── questions.js # Serverless Function บน Vercel คุยกับ Gemini API
├── index.html # โครงสร้างหน้าเว็บหลักของเกม
├── style.css # การตกแต่งสไตล์ Glassmorphic UI และอนิเมชันทั้งหมด
├── app.js # ตรรกะของเกม การสังเคราะห์เสียง และระบบการเล่น
├── README.md # คู่มือการใช้งานโครงการนี้
└── .gitignore # ตั้งค่าละเว้นไฟล์ที่ไม่ต้องการขึ้น Git
- Node.js ติดตั้งอยู่ในระบบ
- เปิด Command Prompt / Terminal แล้วเข้าไปที่โฟลเดอร์ของโครงการ
- ตั้งค่า Environment Variable สำหรับคีย์ API (รับคีย์จาก Google AI Studio)
- Windows PowerShell:
$env:GEMINI_API_KEY="คีย์_GEMINI_ของคุณ"
- Windows CMD:
set GEMINI_API_KEY=คีย์_GEMINI_ของคุณ
- macOS / Linux Terminal:
export GEMINI_API_KEY="คีย์_GEMINI_ของคุณ"
- Windows PowerShell:
- รันตัวเซิร์ฟเวอร์หลังบ้านจำลองผ่าน Vercel CLI (ระบบจะดาวน์โหลดตัวจัดการอัตโนมัติ):
npx vercel dev
- ระบบจำลองจะเริ่มรันในเครื่องของคุณ (โดยทั่วไปคือ
http://localhost:3000) ลองเปิดเล่นผ่านลิงก์ดังกล่าวเพื่อทดสอบการเรียกใช้งาน
- ทำการ Push ไฟล์ทั้งหมดขึ้นที่คลังข้อมูล GitHub ของคุณ (รวมถึงโฟลเดอร์
api) - สมัครใช้งานหรือเข้าสู่ระบบที่ Vercel.com
- กด Add New > Project แล้วกด Import โปรเจกต์จาก GitHub ของคุณ
- ไปที่หัวข้อ Environment Variables แล้วระบุตัวแปรดังนี้:
- Name:
GEMINI_API_KEY - Value: ใส่คีย์ Gemini API ของคุณที่ได้มาจาก Google AI Studio
- Name:
- กดปุ่ม Deploy
- โค้ดหลังบ้านจะถูกติดตั้งที่เซิร์ฟเวอร์ และได้ URL โดเมนใช้งานเล่นเกมได้เลยทันที (เช่น
https://trivia-betting.vercel.app)
หากคุณต้องการแสดงผลหน้าจอเกมหลักบน GitHub Pages แต่ต้องการใช้หลังบ้านในการเก็บคีย์บน Vercel:
- ทำตามขั้นตอนของ แนวทางที่ 1 บน Vercel เพื่อเปิดเซิร์ฟเวอร์หลังบ้านก่อน
- ในโค้ด app.js บรรทัดที่ 3 ให้กำหนดค่า
BACKEND_API_URLชี้ไปที่ URL ของ Vercel ที่คุณได้ติดตั้ง เช่น:const BACKEND_API_URL = "https://your-project.vercel.app";
- นำโค้ดนี้ส่งขึ้น GitHub และตั้งค่าเปิดใช้งาน GitHub Pages ในส่วน Settings ของคลังข้อมูล GitHub
- ตัวหน้าเว็บเกมบน GitHub Pages จะทำการยิงเรียกหาข้อมูลคำถามมาใช้จาก Vercel Proxy ภายใต้ระบบรักษาความปลอดภัยอย่างถูกต้องและไม่โดนบล็อก CORS
- Frontend: Vanilla HTML5, CSS3 (Glassmorphic variables, Flexbox/Grid), Modern Vanilla JavaScript (ES6 Modules)
- Backend: Node.js (Vercel Serverless Functions API)
- AI Integration: Google Gemini 2.5 Flash (
generateContentendpoint) - Audio synthesis: Native Browser Web Audio API (Oscillators, Gain nodes, AudioContext)
ผลงานนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT License - สามารถนำไปศึกษา ดัดแปลง หรือพัฒนาต่อยอดได้อย่างอิสระ