## 🚀 ภาพรวม
**CubeEye** เป็นแอปพลิเคชัน Android ขั้นสูงที่ออกแบบมาเพื่อแก้ลูกบาศก์รูบิค 3x3 โดยใช้เทคโนโลยีการมองเห็นด้วยคอมพิวเตอร์ในการสแกนลูกบาศก์จริง และให้คำแนะนำแบบ 3 มิติแบบโต้ตอบและเคลื่อนไหวได้ เพื่อช่วยในการแก้ลูกบาศก์โดยใช้การเคลื่อนไหวที่ใกล้เคียงกับค่าที่เหมาะสมที่สุด
## ✨ คุณสมบัติหลัก
### 📷 ระบบสแกนอัจฉริยะ
* **การตรวจจับสีแบบเรียลไทม์:** ระบุสีของหน้าลูกบาศก์โดยอัตโนมัติโดยใช้กล้องผ่าน `ColorAnalyzer` ที่กำหนดเอง
* **การสแกนแบบมีคำแนะนำ:** ส่วนติดต่อผู้ใช้ที่ใช้งานง่ายจะแนะนำผู้ใช้ตลอดกระบวนการจับภาพทั้ง 6 หน้าอย่างถูกต้อง
* **ตรรกะการตรวจสอบ:** `CubeValidator` ในตัวจะตรวจสอบให้แน่ใจว่าสถานะที่สแกนนั้นสามารถแก้ได้จริงก่อนดำเนินการต่อ
* **การแก้ไขด้วยตนเอง:** มี `ColorPickerDialog` ที่ช่วยให้ผู้ใช้สามารถปรับสีด้วยตนเองได้หากสภาพแสงส่งผลต่อการตรวจจับอัตโนมัติ
### 🧩 ตัวแก้ปัญหาอัจฉริยะ
* **อัลกอริทึม Kociemba:** ผสานรวมอัลกอริทึมสองเฟสอันโด่งดัง (ผ่านไลบรารี *min2phase*) เพื่อค้นหาคำตอบที่ใกล้เคียงที่สุด ซึ่งมักใช้จำนวนการเคลื่อนไหวไม่ถึง 20 ครั้ง
* **การคำนวณแบบโลคอลที่รวดเร็ว:** แก้ปัญหาการสลับลูกบาศก์ที่ซับซ้อนได้ในไม่กี่วินาทีโดยตรงบนอุปกรณ์โดยไม่จำเป็นต้องเชื่อมต่อเครือข่าย
### 🎥 คู่มือ 3 มิติแบบโต้ตอบ
* **การแสดงภาพ 3 มิติ:** มีการแสดงผล 3 มิติแบบโต้ตอบอย่างเต็มรูปแบบ (`Cube3DView`) ที่จำลองสถานะของลูกบาศก์จริงได้อย่างแม่นยำ
* **แอนิเมชันแบบทีละขั้นตอน:** ผู้ใช้สามารถเล่น หยุดชั่วคราว และเลื่อนดูการเคลื่อนไหวในการแก้ปัญหาได้ตามต้องการ
## 🛠 จุดเด่นทางเทคนิค
* **เทคโนโลยี Android สมัยใหม่:** สร้างขึ้นทั้งหมดโดยใช้ Kotlin และ Jetpack Compose (Material 3)
* **สถาปัตยกรรมที่แข็งแกร่ง:** ปฏิบัติตามหลักการ Clean Architecture โดยใช้รูปแบบ MVVM, Hilt สำหรับการฉีดการพึ่งพา และ Coroutines สำหรับการทำงานแบบอะซิงโครนัส
* **CameraX:** ใช้งานโครงสร้างพื้นฐานกล้องที่เสถียรและมีประสิทธิภาพสำหรับการแสดงตัวอย่างแบบเรียลไทม์และการวิเคราะห์ภาพ
* **SceneView:** ใช้ไลบรารี SceneView สำหรับการเรนเดอร์ 3 มิติประสิทธิภาพสูง
## 🐛 ปัญหาที่พบ / สิ่งที่ต้องทำ
* ปรับค่าเกณฑ์การตรวจจับสีให้เหมาะสมยิ่งขึ้นเพื่อรับมือกับสภาพแสงที่รุนแรง
* ทำให้การรวมไลบรารี "min2phase" เป็นไปโดยอัตโนมัติ (ปัจจุบันรวมอยู่ในไฟล์ต้นฉบับแบบแมนนวล)