## 🚀 Apžvalga
**„CubeEye“** yra pažangi „Android“ programa, skirta 3x3 Rubiko kubams spręsti. Ji naudoja kompiuterinę regą fiziniam kubui nuskaityti ir pateikia interaktyvų, animuotą 3D vadovą, kaip jį išspręsti naudojant beveik optimalius judesius.
## ✨ Pagrindinės funkcijos
### 📷 Išmanioji nuskaitymo sistema
* **Spalvų aptikimas realiuoju laiku:** Automatiškai identifikuoja kubo paviršių spalvas naudodama kamerą su pritaikytu „ColorAnalyzer“.
* **Vadovaujamas nuskaitymas:** Intuityvus vartotojo sąsajos perdangos sluoksnis padeda vartotojams teisingai užfiksuoti visas 6 sienas.
* **Patvirtinimo logika:** Integruotas „CubeValidator“ užtikrina, kad nuskaityta būsena būtų fiziškai išspręsta prieš tęsiant.
* **Rankinis taisymas:** Apima „ColorPickerDialog“, leidžiantį vartotojams rankiniu būdu reguliuoti spalvas, jei apšvietimo sąlygos veikia automatinį aptikimą.
### 🧩 Išmanusis sprendiklis
* **Kociembos algoritmas:** Integruoja garsųjį dviejų fazių algoritmą (per *min2phase* biblioteką), kad rastų beveik optimalius sprendimus, dažnai reikalaujančius mažiau nei 20 ėjimų.
* **Greitas vietinis skaičiavimas:** Išsprendžia sudėtingas problemas per kelias sekundes tiesiai įrenginyje, nereikalaujant tinklo ryšio.
### 🎥 Interaktyvus 3D vadovas
* **3D vizualizacija:** Turi visiškai interaktyvų 3D vaizdavimą („Cube3DView“), kuris tiksliai imituoja tikrojo kubo būseną.
* **Žingsnis po žingsnio animacija:** Vartotojai gali leisti, pristabdyti ir peržiūrėti sprendimo ėjimus savo tempu.
## 🛠 Techniniai akcentai
* **Modernus „Android“ paketas:** Sukurtas naudojant „Kotlin“ ir „Jetpack Compose“ (3 medžiaga).
* **Tvirta architektūra:** Vadovaujasi švarios architektūros principais, naudodama MVVM šablonus, Hilt priklausomybių injekcijai ir korutinas asinchroninėms operacijoms.
* **CameraX:** Įdiegia stabilų ir efektyvų kameros pagrindą tiesioginei peržiūrai ir vaizdų analizei.
* **SceneView:** Naudoja „SceneView“ biblioteką didelio našumo 3D vaizdavimui.
## 🐛 Žinomos problemos / TODO
* Optimizuoja spalvų aptikimo slenksčius, kad būtų geriau valdomos ekstremalios apšvietimo sąlygos.
* Automatizuoja „min2phase“ bibliotekos integravimą (šiuo metu įtraukta kaip rankiniai šaltinio failai).