## 🚀 Ընդհանուր տեսք
**CubeEye**-ը առաջադեմ Android հավելված է, որը նախատեսված է 3x3 Ռուբիկի խորանարդները լուծելու համար: Այն օգտագործում է համակարգչային տեսողությունը՝ ֆիզիկական խորանարդը սկանավորելու համար և տրամադրում է ինտերակտիվ, անիմացիոն 3D ուղեցույց՝ այն լուծելու համար՝ օգտագործելով գրեթե օպտիմալ շարժումներ:
## ✨ Հիմնական առանձնահատկություններ
### 📷 Խելացի սկանավորման համակարգ
* **Իրական ժամանակի գույների հայտնաբերում.** Ավտոմատ կերպով նույնականացնում է խորանարդի դեմքերի գույները՝ օգտագործելով տեսախցիկը՝ հատուկ «ColorAnalyzer»-ի միջոցով:
* **Ուղղորդվող սկանավորում.** Ինտուիտիվ ինտերֆեյսի ծածկույթը ուղղորդում է օգտատերերին բոլոր 6 դեմքերը ճիշտ նկարահանելու գործընթացում:
* **Հաստատման տրամաբանություն.** Ներկառուցված «CubeValidator»-ը ապահովում է, որ սկանավորված վիճակը ֆիզիկապես լուծելի լինի՝ նախքան շարունակելը:
* **Ձեռքով ուղղում.** Ներառում է «ColorPickerDialog»-ը, որը թույլ է տալիս օգտատերերին ձեռքով կարգավորել գույները, եթե լուսավորության պայմանները ազդում են ավտոմատ հայտնաբերման վրա:
### 🧩 Խելացի լուծող
* **Կոչիեմբա ալգորիթմ.** Ինտեգրում է հայտնի երկփուլ ալգորիթմը (*min2phase* գրադարանի միջոցով)՝ գրեթե օպտիմալ լուծումներ գտնելու համար, որոնք հաճախ պահանջում են 20-ից պակաս շարժում։
* **Արագ տեղային հաշվարկ.** Լուծում է բարդ խառնաշփոթներ վայրկյանների ընթացքում անմիջապես սարքի վրա՝ առանց ցանցային կապի անհրաժեշտության։
### 🎥 Ինտերակտիվ 3D ուղեցույց
* **3D վիզուալիզացիա.** Ներկայացնում է լիովին ինտերակտիվ 3D ռենդերինգ (`Cube3DView`), որը ճշգրտորեն ընդօրինակում է իրական խորանարդի վիճակը։
* **Քայլ առ քայլ անիմացիա.** Օգտատերերը կարող են նվագարկել, դադարեցնել և թերթել լուծման շարժումները իրենց սեփական տեմպով։
## 🛠 Տեխնիկական առանձնահատկություններ
* **Ժամանակակից Android Stack.** Կառուցված է ամբողջությամբ Kotlin-ի և Jetpack Compose-ի միջոցով (Նյութ 3):
* **Հզոր ճարտարապետություն.** Հետևում է մաքուր ճարտարապետության սկզբունքներին՝ օգտագործելով MVVM նախշեր, Hilt՝ կախվածության ներարկման համար, և Coroutines՝ ասինխրոն գործողությունների համար։
* **CameraX.** Ներդրում է կայուն և արդյունավետ տեսախցիկի հիմք՝ ուղիղ նախադիտման և պատկերի վերլուծության համար։
* **SceneView.** Օգտագործում է SceneView գրադարանը՝ բարձր արդյունավետությամբ 3D մատուցման համար։
## 🐛 Հայտնի խնդիրներ / TODO-ներ
* Օպտիմալացնում է գույների հայտնաբերման շեմերը՝ ծայրահեղ լուսավորության պայմանները ավելի լավ կառավարելու համար։
* Ավտոմատացնում է «min2phase» գրադարանի ինտեգրումը (ներկայումս ներառված է որպես ձեռքով մշակվող աղբյուրի ֆայլեր)։
Վերջին թարմացումը՝
06 հնվ, 2026 թ.