## 🚀 نمای کلی
**CubeEye** یک اپلیکیشن پیشرفته اندروید است که برای حل مکعبهای روبیک ۳x۳ طراحی شده است. این اپلیکیشن از بینایی کامپیوتر برای اسکن یک مکعب فیزیکی استفاده میکند و یک راهنمای سهبعدی تعاملی و متحرک برای حل آن با استفاده از حرکات تقریباً بهینه ارائه میدهد.
## ✨ ویژگیهای کلیدی
### 📷 سیستم اسکن هوشمند
* **تشخیص رنگ بلادرنگ:** به طور خودکار رنگهای وجههای مکعب را با استفاده از دوربین از طریق `ColorAnalyzer` سفارشی شناسایی میکند.
* **اسکن هدایتشده:** یک رابط کاربری بصری، کاربران را در فرآیند ثبت صحیح هر ۶ وجه راهنمایی میکند.
* **منطق اعتبارسنجی:** `CubeValidator` داخلی تضمین میکند که حالت اسکن شده قبل از ادامه از نظر فیزیکی قابل حل است.
* **تصحیح دستی:** شامل `ColorPickerDialog` است که به کاربران امکان میدهد در صورت تأثیر شرایط نوری بر تشخیص خودکار، رنگها را به صورت دستی تنظیم کنند.
### 🧩 حلکننده هوشمند
* **الگوریتم Kociemba:** الگوریتم معروف دو فازی (از طریق کتابخانه *min2phase*) را برای یافتن راهحلهای نزدیک به بهینه، که اغلب به کمتر از 20 حرکت نیاز دارد، ادغام میکند.
* **محاسبات محلی سریع:** حل مسائل پیچیده را در عرض چند ثانیه مستقیماً روی دستگاه و بدون نیاز به اتصال به شبکه انجام میدهد.
### 🎥 راهنمای سهبعدی تعاملی
* **تجسم سهبعدی:** دارای یک رندر سهبعدی کاملاً تعاملی (`Cube3DView`) است که حالت مکعب واقعی را به طور دقیق تقلید میکند.
* **انیمیشن گام به گام:** کاربران میتوانند با سرعت دلخواه خود، حرکتهای راهحل را پخش، متوقف و مرور کنند.
## 🛠 نکات برجسته فنی
* **پشته اندروید مدرن:** کاملاً با استفاده از Kotlin و Jetpack Compose (Material 3) ساخته شده است.
* **معماری قوی:** از اصول معماری پاک پیروی میکند و از الگوهای MVVM، Hilt برای تزریق وابستگی و Coroutine برای عملیات ناهمزمان استفاده میکند.
* **CameraX:** یک پایه دوربین پایدار و کارآمد برای پیشنمایش زنده و تجزیه و تحلیل تصویر پیادهسازی میکند.
* **SceneView:** از کتابخانه SceneView برای رندر سهبعدی با کارایی بالا استفاده میکند.
## 🐛 مشکلات شناخته شده / TODOها
* آستانههای تشخیص رنگ را برای مدیریت بهتر شرایط نوری شدید بهینه میکند.
* ادغام کتابخانه "min2phase" (که در حال حاضر به عنوان فایلهای منبع دستی موجود است) را خودکار میکند.
تاریخ بهروزرسانی
۱۶ دی ۱۴۰۴