## 🚀 მიმოხილვა
**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 რენდერინგისთვის.
## 🐛 ცნობილი პრობლემები / დავალებები
* ოპტიმიზაციას უკეთებს ფერის ამოცნობის ზღურბლებს ექსტრემალური განათების პირობების გასამკლავებლად.
* ავტომატიზაციას უკეთებს "min2phase" ბიბლიოთეკის ინტეგრაციას (ამჟამად შედის ხელით შემუშავებული წყაროს ფაილების სახით).