## 🚀 概述
**CubeEye** 是一款專為解決 3x3 魔術方塊而設計的高級 Android 應用程式。它利用電腦視覺技術掃描實體魔術方塊,並提供互動式 3D 動畫指導,幫助使用者使用接近最佳的步法進行還原。
## ✨ 主要功能
### 📷 智慧掃描系統
* **即時色彩偵測:** 透過自訂的 `ColorAnalyzer`,利用相機自動辨識魔術方塊各面的顏色。
* **引導式掃描:** 直覺的 UI 介面引導使用者正確掃描所有 6 個面。
* **驗證邏輯:** 內建的 `CubeValidator` 確保掃描結果在實際操作中可還原。
* **手動校正:** 內建 `ColorPickerDialog`,讓使用者在光照條件影響自動偵測時手動調整顏色。
### 🧩 智慧解算器
* **Kociemba 演算法:** 整合了著名的兩階段演算法(透過 *min2phase* 函式庫),能夠找到接近最優解,通常只需不到 20 步即可完成。
* **快速本地運算:** 無需網路連接,即可在裝置上直接在幾秒鐘內解決複雜的打亂問題。
### 🎥 互動式 3D 指南
* **3D 視覺化:** 提供完全互動的 3D 渲染(`Cube3DView`),能夠精確模擬真實魔術方塊的狀態。
* **逐步動畫:** 使用者可以按照自己的步調播放、暫停和拖曳進度條來查看解算步驟。
## 🛠 技術亮點
* **現代 Android 技術堆疊:** 完全使用 Kotlin 和 Jetpack Compose(Material 3)建構。
* **穩健的架構:**遵循整潔架構原則,採用 MVVM 模式,使用 Hilt 進行依賴注入,並使用協程進行非同步操作。
* **CameraX:**實現了穩定且高效的相機基礎架構,用於即時預覽和影像分析。
* **SceneView:**利用 SceneView 函式庫進行高效能 3D 渲染。
## 🐛 已知問題/待辦事項
* 最佳化顏色偵測閾值,以更好地應對極端光照條件。
* 自動整合「min2phase」庫(目前以手動原始檔案的形式包含)。